结构体和类非常相似,结构体用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.