java引用类型赋值_C#引用类型赋值VS值类型赋值

我理解将一个引用类型变量分配给另一个引用类型变量的理论概念,只复制引用,而不是对象 . 将一个值类型变量分配给另一个,将复制该对象 . 但我无法发现代码中的不同之处 . 有人会指出以下两个代码块之间的区别吗?谢谢!

参考类型分配

using System;

class Employee

{

private string m_name;

public string Name

{

get { return m_name; }

set { m_name = value; }

}

}

class Program

{

static void Main()

{

Employee joe = new Employee();

joe.Name = "Joe";

Employee bob = new Employee();

bob.Name = "Bob";

Console.WriteLine("Original Employee Values:");

Console.WriteLine("joe = " + joe.Name);

Console.WriteLine("bob = " + bob.Name);

// assign joe reference to bob variable

bob = joe;

Console.WriteLine();

Console.WriteLine("Values After Reference Assignment:");

Console.WriteLine("joe = " + joe.Name);

Console.WriteLine("bob = " + bob.Name);

joe.Name = "Bobbi Jo";

Console.WriteLine();

Console.WriteLine("Values After Changing One Instance:");

Console.WriteLine("joe = " + joe.Name);

Console.WriteLine("bob = " + bob.Name);

Console.ReadKey();

}

}

Value 类型分配

using System;

struct Height

{

private int m_inches;

public int Inches

{

get { return m_inches; }

set { m_inches = value; }

}

}

class Program

{

static void Main()

{

Height joe = new Height();

joe.Inches = 71;

Height bob = new Height();

bob.Inches = 59;

Console.WriteLine("Original Height

Values:");

Console.WriteLine("joe = " + joe.Inches);

Console.WriteLine("bob = " + bob.Inches);

// assign joe reference to bob variable

bob = joe;

Console.WriteLine();

Console.WriteLine("Values After Value Assignment:");

Console.WriteLine("joe = " + joe.Inches);

Console.WriteLine("bob = " + bob.Inches);

joe.Inches = 65;

Console.WriteLine();

Console.WriteLine("Values After Changing One Instance:");

Console.WriteLine("joe = " + joe.Inches);

Console.WriteLine("bob = " + bob.Inches);

Console.ReadKey();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值