在.NET中,struct和class有什么区别?

在.NET中,struct和class有什么区别?

在.NET中,struct和class有什么区别?



慕桂英546537
浏览 566回答 3
3回答

ITMISS

在.NET中,有两类型,参考类型和价值类型.结构价值类型课程是参考类型.一般的区别是参考类型生活在堆上,价值类型内联生活,也就是说,无论它在哪里,您的变量或字段都是定义的。包含价值类型包含整个价值类型价值。对于struct,这意味着变量包含整个struct及其所有字段。包含参考类型包含指针,或参照系到内存中实际值所在的其他地方。首先,这有一个好处:价值类型总是包含一个值参考类型可以包含零-参考,意思是他们现在什么都不提在内部,参考类型S是作为指针实现的,并且知道了这一点,并且知道变量赋值是如何工作的,还有其他的行为模式:复制价值类型变量到另一个变量中,将整个内容复制到新变量中,从而使这两个变量区别开来。换句话说,在复制后,对其中一个的更改不会影响另一个复制参考类型变量到另一个变量中,复制引用,这意味着您现在有两个对同一个变量的引用。其他地方实际数据的存储。换句话说,在复制之后,更改一个引用中的数据似乎也会影响另一个引用,但这只是因为您实际上只是查看两个地方的相同数据在声明变量或字段时,这两种类型的区别如下:变量:价值类型住在垃圾堆上,参考类型作为指向堆内存中实际内存所在的某个位置的指针(尽管请注意)Eric Lipperts系列文章:Stack是实现细节.)类/结构字段:价值类型完全生活在这种类型中,参考类型作为指向堆内存中实际内存所在的某个位置的指针,驻留在该类型中。

手掌心

每一项的简短摘要:只上课:可以支持继承是引用(指针)类型引用可以为空。每个新实例的内存开销仅结构:不能支持继承是值类型通过值传递(如整数)。不能具有空引用(除非使用了Nullable)不要为每个新实例设置内存开销-除非“装箱”。类和结构:复合数据类型通常用于包含一些具有某种逻辑关系的变量。可以包含方法和事件。可以支持接口
打开App,查看更多内容
随时随地看视频慕课网APP