C#语法相比其它语言比较独特的地方(二)
之前有个兄弟给我的卷一re了帖子,我当时没有g,m,直到他把它删掉才后悔莫及,人生最痛苦的事情莫过于此。。。。。。
好,即便如此,我们还是满怀希望的向前奔去。接着写卷二。
还要提一下,上次最后说到的delegate,在我了解了它的实现和用途以及看到我的偶像的一些访问记录后,我对它有了很深的理解,并且在事件处理机制上,我更偏向于我偶像这边,有兄弟说MFC是switch,java是listener,其实java这些listener在processEvent里面还不是一个个switch然后调用,都是switch,那switch就不能说是特点了,最大的特点还是是否直接使用函数指针来进行响应这点上。往下又说信号处理,以前的8259A发生中断查中断向量表进行到头来也是地址转移阿,这也没特点,到后来调用都是地址转移,而速度的差别就在于在同样不可避免具有某些相同层次实现的情况下,机制不同架构不同造成的效率差别,这就完全取决于实力了。
1,internal与protected,private
C#默认的,当定义一个class的时候,如果你没有加任何访问修饰子,那么该class的访问权限即为internal,当然你可以显式制定为internal。internal是什么呢?internal就是说在当前工程中,都可访问,不管你自己用了几个名称空间,都无所谓。
但是在定义一个class中的成员变量的时候,假如你什么都不写,那么这个成员变量默认的权限就是private。如果你要这个成员在当前工程中也可以被访问,则必须使用internal关键字来显式的修饰它。
另外,c#里面的protected访问权限仍然和以前的c++中是一致的含义,表示只有继承者才有访问权限。即便是同一个工程,同一个名称空间中的别的类,都别想看到这个protected成员,颇为严格的一个访问限制。
internal和protected基本控制访问是在不同的领域,他们两个是可以同时用来修饰一个对象的。比如
classPPP { internalprotectedstaticintc=3;
}