天天看点

C#中的一点疑问

虽然到如今自己已经学习C# 已经将近半年了,在这学习的半年中,也深刻地体会到了C#语言的简单与易用性。虽然也曾经用它开发了一点点不是很像样的东西。但是始终对其中的一些问题感到有点困惑。

     先记录如下,希望在以后的学习与使用中,能够真正理解其中的内涵。

首先,我想谈的是C#中的属性机制,虽然这个东西自己在写类的时候,也经常使用,但是并不是很了然其中的好处,我一直在想,把这些声明为属性的字段(注指既有get和set的,仅知道只有get的可以很方便获取该类某实例的属性)声明为public不是一样的好用么,也许有人会说,声明属性完全就是类的保护机制,是使对该属性的修改或获取仅仅通过一个特定的程序入口,我想这一点是正确的,但是其它的类还不是一样能轻易地修改该类的这个属性吗?也许我还没有真正地体会到面向对象中封装的真正的概念。希望能够尽早找到答案。呵呵。

其次,就是面向对象中的虚函数,呵呵,C# 当中的自然也不例外,虽然对这个东西是基本上没有什么疑虑,但是总感觉以前的理解不是很直观,今天突发奇想,我们是不是可以这样理解,在声明一个子类的实例的时候,其实在编译的时候,编译器不仅为我们申请了子类重写函数的地址空间,也为父类的该虚函数申请了一个地址空间,但程序实际运行时,程序通过调用的对象,来计算该函数的入口地址,从而决定调用哪一个函数,呵呵,这仅仅是我哥人的想法,主要是为了更加方便的理解。以前对这个总是晕晕的。

第三:就是C# 中的事件。毫无疑问C# 中的事件与代理机制,为我们对事件的处理,提供了很大的方便。但是却对其中的内部机制不是很了解。仅仅知其然不知其所以然,希望看到这篇文章的高手能够为小弟解决这个方面的疑问,不甚感谢。呵呵。(好像网上讨论这个内部机制的文章很少!)

   暂时只想到这些。呵呵!

继续阅读