1. 程式人生 > >C#基礎:結構體和類的區別

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.