几个月前有人问我这个问题,我无法详细解释。 C# 中引用类型和值类型有什么区别?
我知道值类型是int
, bool
, float
等,参考类型是delegate
, interface
等等。或者这也是错误的吗?
你能用专业的方式给我解释一下吗?
你的例子有点奇怪,因为虽然int
, bool
and float
是特定的类型、接口和委托是kinds类型 - 就像struct
and enum
是各种值类型。
我写过an引用类型和值类型的解释在本文中 http://pobox.com/~skeet/csharp/references.html。我很乐意对您感到困惑的任何部分进行扩展。
“TL;DR”版本是考虑特定类型的变量/表达式的值是什么。对于值类型,值就是信息本身。对于引用类型,该值是一个引用,可以为空,也可以是导航到包含该信息的对象的一种方式。
例如,将变量想象成一张纸。它可以在上面写上值“5”或“假”,但它不能有我的房子......它必须有方向到我家。这些指示相当于参考。特别是,两个人可以有不同的纸片,其中包含到我家的相同方向 - 如果一个人按照这些方向将我的房子漆成红色,那么第二个人也会看到这种变化。如果他们俩只是分开的话pictures如果我在纸上画出我的房子,那么一个人给自己的纸上色就根本不会改变另一个人的纸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)