C#基础:结构体和类的区别

    结构体和类非常相似,结构体用struct修饰,类用class修饰,结构体是值类型,类是引用类型。

具体示例代码如下:

  1.  public class MyClass//类
  2.         {
  3.             public int val;
  4.         }
  5.   public struct MyStruct://结构体
  6.        {
  7.             public int val;         
  8.         }
  9. class Program{
  10.       static void Main(string[] args){
  11.             MyClass objectA = new MyClass();//类
  12.             MyClass objectB = objectA;
  13.             objectA.val = 10;
  14.             objectB.val = 20;
  15.             MyStruct msA = new MyStruct();//结构特
  16.             MyStruct msB = msA;
  17.             msA.val = 30;
  18.             msB.val = 40;
  19.             Console.WriteLine($"objectA.val={objectA.val}");
  20.             Console.WriteLine($"objectB.val={objectB.val}");
  21.             Console.WriteLine($"msA.val={msA.val}");
  22.             Console.WriteLine($"msB.val={msB.val}");
  23.     }
  24. }

 运行结果:

objectA.val=20

objectB.val=20

msA.val=30

msB.val=40

这说明了类是引用类型,类的两个对象, MyClass objectB = objectA;引用同一个对象的指针。所以结果是相同的。

结构体是值类型MyStruct msB = msA;是把msA复制给msB.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值