技術的なやつ

技術的なやつ

C# の struct と class の違い

struct は値型,class は参照型らしい.ここ見た

using System;

struct Struct {
    public int x;
}

class Class {
    public int x;
}

class MainClass {
    static void Main() {
        var s1 = new Struct();
        s1.x = 1;
        var s2 = s1;
        s2.x = 2;
        Console.WriteLine("s1.x: " + s1.x + ", s2.x: " + s2.x);

        var c1 = new Class();
        c1.x = 1;
        var c2 = c1;
        c2.x = 2;
        Console.WriteLine("c1.x: " + c1.x + ", c2.x: " + c2.x);
    }
}
s1.x: 1, s2.x: 2
c1.x: 2, c2.x: 2

C++と同じような感覚だと,デフォルトのアクセシビリティが違うのかなーと思ってたけどもっと重要な部分が違っていた.