.NET 指南:被嵌套的类型

被嵌套的类型是一些其他类型的成员类型。被嵌套的类型应该与它们的声明类型进行紧耦合并且不能与常规类型一样是可用的。被嵌套的类型容易被一些开发者所混淆并且不能够是公开可见的,除非有一个强制性的原因要这样做。在一个设计良好的库中,开发者应该极少地使用被嵌套的类型来实例化对象或声明变量。

被嵌套的类型在使用声明类型并且创建被嵌套类型的实例的时候是有用的,并且对于被嵌套的类型的使用也不能够被暴露在公共的成员中。

在被嵌套的类型和它的外部类型之间的关系与成员可访问性的语义是合意的时候可以使用被嵌套的类型。

因为被嵌套的类型被视为声明类型的一个成员,所以被嵌套的类型可以访问到声明类型中的所有其他成员。

不要把公共的被嵌套类型当成一个逻辑分组构造器来使用;而应该使用命名空间。
避免公开被暴露的被嵌套类型。在被嵌套类型中的变量需要在罕见的开发情节中(如子集或其他高级的自定义情节)中被声明的时候只会产生异常。
如果类型可能会在类型的声明之外被引用,就不要使用嵌套的类型。

被嵌套类型的变量声明和对象的实例化在公共的开发情节中应该不是必需的。例如,一个对被定义在类中的事件进行处理的事件处理器代理就不应该被嵌套在该类中。

如果它们需要通过客户端代码而被实例化,不要使用被嵌套的类型。如果一个类型拥有一个公共的构造器,那么它就不应该是被嵌套的。

理想地说,被嵌套的类型是只能通过它的声明类型而被例示并且被使用的。如果一个被嵌套的类型有公共的构造器,这就表示该类型从它的声明类型中还是有一些分离的用途的。总之,被嵌套的类型不应该为除了它的声明类型以外的类型而执行任务。如果一个类型拥有广泛的用途,那么它就不应该是被嵌套的。

不要与接口的成员一样来定义被嵌套的类型。并且许多编程语言都不支持这样的构造。

转载于:https://www.cnblogs.com/Laeb/archive/2007/01/29/633854.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值