C#基礎:結構體和類的區別
阿新 • • 發佈:2018-12-23
結構體和類非常相似,結構體用struct修飾,類用class修飾,結構體是值型別,類是引用型別。
具體示例程式碼如下:
- public class MyClass//類
- {
- public int val;
- }
- public struct MyStruct://結構體
- {
- public int val;
- }
- class Program{
- static void Main(string[] args){
- MyClass objectA = new MyClass();//類
- MyClass objectB = objectA;
- objectA.val = 10;
- objectB.val = 20;
- MyStruct msA = new MyStruct();//結構特
- MyStruct msB = msA;
- msA.val = 30;
- msB.val = 40;
- Console.WriteLine($"objectA.val={objectA.val}");
- Console.WriteLine($"objectB.val={objectB.val}");
- Console.WriteLine($"msA.val={msA.val}");
- Console.WriteLine($"msB.val={msB.val}");
- }
- }
執行結果:
objectA.val=20
objectB.val=20
msA.val=30
msB.val=40
這說明了類是引用型別,類的兩個物件, MyClass objectB = objectA;引用同一個物件的指標。所以結果是相同的。
結構體是值型別MyStruct msB = msA;是把msA複製給msB.