C#成员可访问性(可访问性不1致).docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
笨人晚宴 杀人宝盒 劫匪 C#成员可访问性(可访问性不一致)(2010-01-13 11:50:04)转载标签:c类成员可访问性it分类:CSharp一、已声明可访问性C#成员已声明可访问性可以是下列的:1.public:访问不受限制;2.protected:访问仅限于包含该成员类或从包含该成员类所派生类型;3.ernal:访问仅限于此;4.protectedernal:访问仅限于此或包含该成员类所派生类型;5.private:访问仅限于包含该成员类型。?二、默认已声明可访问性1.命名空间隐式地具有public已声明可访问性在命名空间声明中不允许使用访问修饰符;2.编辑单元或命名空间中声明类型可以具有public或ernal已声明可访问性其默认已声明可访问性为ernal;3.类成员可以具有5种已声明可访问性任意种其默认已声明可访问性为private(注意:生命为类成员类型可以具有五种已声明可访问性中任意种但是声明为命名空间成员类型只能具有public或ernal已声明可访问性);4.结构成员可以具有publicernal或private等已声明可访问性其默认已声明可访问性为private这是结构是隐式密封;5.接口成员隐式地具有public已声明可访问性在接口成员声明中不允许使用访问修饰符;6.枚举成员隐式地具有public已声明可访问性在枚举成员声明中不允许使用访问修饰符。?三、可访问性约束1.类类型直接基类必须至少和该类类型本身具有相同可访问性;2.借口类型显示基接口必须至少和该接口类型本身具有相同可访问性;3.委托类型返回类型和参数类型必须至少和该委托类型本身具有相同可访问性;4.常量类型必须至少和该常量本身具有相同可访问性;5.域类型必须至少和该域本身具有相同可访问性;6.思路方法返回类型和参数类型必须至少和该思路方法本身具有相同可访问性;7.属性类型必须至少和该属性本身具有相同可访问性;8.事件类型必须至少和该事件本身具有相同可访问性;9.索引器类型和参数类型必须和该索引器本身具有相同可访问性;10.运算符返回类型和参数类型必须至少和该运算符本身具有相同可访问性;11.市里构造参数类型必须至少和该例子构造本身具有相同可访问性 [Page]例:B类将引起个编译时A并不至少和B具有相同可访问性A{…}publicB:A{…}例:B中思路方法H将引起个编译时返回类型A并不至少和该思路方法具有相同可访问性A{…}publicB{? AF{…}? ernalAG{…}? publicAH{…}}?四、可访问域1.预定义类型(例如object、或double)可访问域是无限;2.在P中声明顶级类型(不是在某个类型中声明成员)T可访问域是指:? ·如果T已声明可访问性为public则T可访问域将是P以及引用P任何文本;? ·如果T已声明可访问性为ernal则T可访问域将是P文本? 可见定及类型可访问域始终至少是在其中声明该类型文本3.在P类型T中声明嵌套成员(在其他类型中声明成员)M其可访问域是如下所指的(M本身也可能是个类型):? ·如果M已声明可访问性为public则M可访问域将是T可访问域;? ·如果M已声明可访问性为protectedernal设D表示P文本和所有从T派生类型(这些类型是在P外部声明)文本并集,则M可访问域将是T和D可访问域交集;? ·如果M已声明可访问性为protected设D表示T文本和所有从T派生类型文本并集则M可访问域将是T和D可访问域交集;? ·如果M已声明可访问性为ernal则M可访问域将是T可访问域和P文本交集;? ·如果M已声明可访问性为private则M可访问域将是T文本? 可见嵌套成员可访问域总是至少为声明该成员类型文本并且绝不会大于声明该成员类型可访问域例public A{? publicX;? ernalY;? privateZ;}ernal B{? publicX;? ernalY; [Page]? privateZ;? public C? {??? publicX;??? ernalY;??? privateZ;? }? private D? {??? publicX;??? ernalY;??? privateZ;? }}在这个例子中类和成员具有以下可访问域:? ·A和A.X可访问域无限制;? ·A.Y、B、B.X、B.Y、B.C、B.C.X和B.C.Y可访问域是包含这段代码文本;? ·A.Z可访问域是A文本;? ·B.Z和B.D可访问域是B文本包括B.C和B.D文本;? ·B.C.Z可访问域是B.C文本;? ·B.D.X和B.D.Y可访问域是B文本包括B.C和B.D文本;? ·B.D.Z可访问域是B.D文本例:基类所有成员(例子构造、析构和静态构造除外)都由派生类型继承这些成

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档