假设所有由new初始化的C#变量都是安全的引用?

时间:2009-05-14 04:29:20

标签: c# reference ref

我现在正在学习C#refs。

是否可以安全地假设所有使用new分配的变量都是引用而不是值?

示例:

SomeType variable = new SomeType()

6 个答案:

答案 0 :(得分:4)

没有

  • 类的实例是引用,但结构的实例是值。
  • 类和结构都可以使用新的
  • 构建

例如,System.Drawing.Pointstruct而不是class

Point point = new Point(1, 1); //point is a value, not a reference

答案 1 :(得分:3)

C#有两种类型的对象 - 引用类型(使用类关键字定义)和值类型(使用struct关键字定义)。

获取一本关于C#的好书以获取更多细节。这是一个重要的概念。

答案 2 :(得分:1)

不,值类型不是引用。

但是使用任何其他非valuetype类型和'ref / out'参数,它们都是引用。

答案 3 :(得分:1)

没有。在C#中,结构体也使用new()进行实例化,但被视为值。

答案 4 :(得分:0)

看起来你正在混淆对象的引用。如果是这种情况,则使用new关键字创建的类型是对象。除了被视为值的结构外。

答案 5 :(得分:0)

不一定。当您了解有关C#的更多信息时,您会发现您有类,它们是引用类型,而结构是值类型。它们都是通过使用'new'关键字实例化的,但结构的实例不是引用。