13,656
社区成员




C#高级编程:从零基础入门到高级语法全集教程
一、对象和类型
类(class)是C#开发过程中最经常接触到的东西,类中可能包含有字段、常量、属性、方法、构造函数、索引器、事件、运算符、析构函数、内部类。以及我们可以使用多种关键字来辅助描述它达到我们希望它所拥有的功能。与类相似的还有结构(struct),在下面将会进行具体的描述。
1、类和结构的区别:
所有的类都是派生于一个名为Object的基类,就算是我们自己定义的类如果在定义时没有指定基类系统将隐式的将Object类作为它的基类。这对于结构来说是一样的,每个结构派生自ValueType类,而ValueType则又派生于Object类。
由此我们可以看出结构与类十分相似,但也有很明显的不同之处:
1》首先,尽管在语法上可以将结构当做类来处理,但结构是值类型的也就是说结构所赋的值是真正的值而不是引用,结构的值放置在栈中而不是指向堆也不会再堆中占用内存,这使结构在性能上具有优势。而类所实例化的对象储存的是一个引用地址,当使用new语句时,系统将在托管堆空间中申请内存存放一个对象,并将这个对象的引用地址给类声明的变量。
2》其次,结构不是为继承而被创建出来的,所以结构并不支持继承。但其实结构是派生于Object类的,所以结构也可以使用Object中的方法。
3》还有,结构的初始化不同于类的初始化,例如:
Dimensions dimension;
dimension.Length=100;