引用变量和对象之间的实际差异是什么

pet*_*ter 2 .net c# class object

我已经阅读了很多,现在我真的很困惑.考虑一个普通的实例化:

Sampleclass  instance1  = new Sampleclass();
Run Code Online (Sandbox Code Playgroud)

在阅读了很多之后我才知道这instance1是一个存储在堆栈中的引用变量,它包含存储在堆中的对象数据的内存地址.

如果这是正确的那么对象在哪里?instance1也是一个对象.有时候我只看到了声明new Sampleclass().这对于对象实例化是否足够?

SLa*_*aks 7

instance1 是一个变量.

因为它的类型是引用类型,所以它是对存在于堆上的对象实例的引用.

new SampleClass() 是一个构造函数调用,它在堆上创建一个新对象并返回对它的引用.