在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
写在最前面的话: c#的修饰符大概分3类: 1、访问型修饰符,就是控制所修饰成员的可访问域,包括:public、private、protected、internal 和protected internal。其中只能protected internal 组合,其他都不能。 public:访问不受限制。 上面的概念好像很绕口。不过在如果你对面向对象大致了解的话,理解这些概念并不难,需要明确两个东东:程序集和项目。这里不详细讨论程序集和项目(如果你想全面了解有关程序集,项目,命名空间等东东,可以去看看这里),你可以大致理解,一个项目可以是一个程序集。 public、private、proteced我觉得非常比较好理解,麻烦点就是Internal,只能在一个项目中使用,不能跨项目调用,只能自己的项目内使用,即使是子类也不能访问。 namespace space1 { internal class Class1 { public int a } class Class2 { public void b() { Class1 cc = new Class1(); } } } namespace space2 { class App { static void Main(string[] args) { space1.Class1 t_xA = new space1.Class1();//error 以上的代码表明,Internal 是不能跨项目访问的。 对于protected internal 简单些理解,就是protected 和internal 的并集。protected就只能被子类内部所访问,于是它们的并集就是:同一个项目内或者子类内部可以访问。如果既不是同一程序集也不是子类,就无法访问。如下面的代码所示: namespace space3 { public class Class1 { internal protected int a; internal int b; protected int c; } public class class2 { public void bbb() { Class1 t_x1=new Class1(); t_x1.a //ok t_x1.b //ok t_x1.b //error } } public class class3:Class1 { public void bbb() { base.a...//ok base.b...//ok base.c ...//ok } } } namespace space4 { class Application1:space3.Class1 { public void a() { base.aa... base.cc... } } class bbb { public void ccc() { space3..Class2 d = new space3.Class2(); d.a.. //error d.b...//error d.c... //error } } } 2、类修饰符: 3、成员修饰符: 注意:1、命名空间不能使用访问修饰符。对命名空间没有访问是不受限制的,它的引入是主要是避免相同对象名的冲突。
本文首发地址:http://www.watch-life.net/csharp/csharp-detail-modifiers.html 更多文章见:守望轩[http://www.watch-life.net] |
请发表评论