c++中只有成员变量和函数这个概念,然而c#中增加了很多术语:字段,属性,变量,方法,消息,委托。。。
先看看“变量”这个词:这个术语的意思应该就是c++中“变量”的一个更小的子集。限定于函数或者全局的定义,比如int a;用来表示一块内存区域。
字段:应该是特指类中的变量。比如在类中定义一个a,int a; 很奇怪,这就叫字段了。
属性:特指类,接口中对字段操作的一个封装。和字段的差别就是,没有没get,set了。
方法:就是函数了。
消息:这个是c++没有的东西。其实是委托的一个字段?
委托:类似函数指针。
显然上面的每个术语都是不重复的。比如说,消息既不是属性,也不是字段,也不是方法,消息就是消息,一种新的类型。
所以就有了下面的说法:
接口中只能包含:方法,属性,消息,索引器。这里没有字段,因为接口是抽象的描述,没有任何实例化的可能,然而字段是占用内存空间的。
抽象类中可以包含:方法,属性,,消息,索引器,字段。