C#的引用类型和值类型

如下代码classMyClass{publicintval;}structmyStruct{publicmyStruct(inti){val=4;Console.Writ... 如下代码
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;
}
}
求解答
展开
 我来答
freeeeeewind
2015-12-12 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1366万
展开全部
1)MyClass objectB = objectA
注意:objectB 是一个引用类型的变量(类似于指针),用来引用对象实例;objectB本身不是对象实例!
所以,这句的含义是:让引用变量objectB等于引用变量objectA。由于变量objectA已经引用了一个MyClass的实例,所以 objectB 和 objectA 引用了同一个MyClass的实例。
2)myStruct structB = structA;
会为structB 分配空间,因为结构变量是值类型变量。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式