C#的引用类型和值类型

如下代码
class MyClass
{
public int val;
}
struct myStruct
{
public myStruct(int i)
{
val = 4;
Console.WriteLine("aaaaaaaa={0}",val);
}
public int val;
}
class Program
{
static void Main(string[] args)
{
MyClass objectA = new MyClass();
MyClass objectB = objectA; //会为对象objectB分配内存空间么?还是它仅仅保存一个objectA的地址?
objectA.val = 10;
objectB.val = 20;
myStruct structA = new myStruct();
myStruct structB = structA; //会为structB分配内存空间么?
structA.val = 30;
structB.val = 40;
}
}
求解答

1)MyClass objectB = objectA
注意:objectB 是一个引用类型的变量(类似于指针),用来引用对象实例;objectB本身不是对象实例!
所以,这句的含义是:让引用变量objectB等于引用变量objectA。由于变量objectA已经引用了一个MyClass的实例,所以 objectB 和 objectA 引用了同一个MyClass的实例。
2)myStruct structB = structA;
会为structB 分配空间,因为结构变量是值类型变量。
温馨提示:答案为网友推荐,仅供参考
相似回答