c#中的引用类型和值类型有什么区别?
几个月前有人问我这个问题,我无法详细解释。C#中的引用类型和值类型有什么区别?
我知道,价值类型int
,bool
,float
,等和引用类型delegate
,interface
等等。或者,这是不对的,太?
你能以专业的方式向我解释吗?
回答:
你的例子是有点古怪,因为虽然int
,bool
并且float
是特定类型,接口和委托是 种 类型的-
就像struct
并且enum
是种价值类型。
我已经在本文中对引用类型和值类型进行
了 解释。我很乐意扩展您感到困惑的任何内容。
“ TL;
DR”版本将考虑特定类型的变量/表达式的值是什么。对于值类型,值是信息本身。对于引用类型,该值是一个引用,该引用可以为null,也可以是导航到包含该信息的对象的方式。
例如,将变量想像成一张纸。它可能上面写有值“ 5”或“ false”,但它不能拥有我的房子……它必须要有 指向 我房子的 指示
。这些方向等同于参考。特别是,两个人可能有不同的纸条,这些纸条上有指向我家的相同指示-
如果一个人按照这些指示将我的房子涂成红色,那么第二个人也会看到这种变化。如果他们俩在纸上都只有我的房子的独立 图片
,那么一个人给他们的纸上色根本不会改变另一个人的纸。
以上是 c#中的引用类型和值类型有什么区别? 的全部内容, 来源链接: utcz.com/qa/399665.html