net中结构与类的区别

,,,,,,,, . net中的类型有5中:类、结构,枚举,接口和委托。而类和结构有着很大的相似性,都可以拥有向字段,方法这样的成员。

,,,,,,,,但是,类和结构还是有很多不同的。

,,,,,,,, 1)结构是值类型,而类确是引用类型的。

,,,,,,,, 2)结构不支持继承。

,,,,,,,, 3)因为结构是值类型的,所以两个变量不能指向同一结构实例。

,,,,,,,, 4)引用类型可以为空(null),但却不能给值类型赋值为空,会导致编译出错

,,,,,,,,,,,,,,,,,,,,例如System.DataTime是一个结构,以下是错误的

,,,,,,,,,,,,,,,,,,,,系统。今天dataTime=零;,,,,//错误的

,,,,,,,,,,,,,,为了规避这个问题。净框架提供了System.Nunllable结构来使任意结构可以为空,,,,,,,,,,,,,,,,简单的写法为:,,System.dataTime吗?今天=零;

,,,,,,,,,,,,,,,,,,,,,,,,,,int ?x=零,,//x是nullable


c#中所有的基本类型,都是在系统命名空间中所定义的结构的别名,例如int和字符,我们每在c#中声明一个int,就会创建一个System.Int32实例,每一个字符,就会有一个System.Char实例支持它。值类型继承自System.ValueType,引用类型继承自系统。对象。


还有一个小问题我之前没听过,就是程序集的概念

,,,,,,,,【我们可以在System.Numerics.dll程序集中找到System.Numerics命名空间,要使用其成员,我们需要现在项目中增加对这个程序集的引用】,,项目→添加参考选中想引用组件类型的标签页

net中结构与类的区别