C# 入門 & 実践 / C sharp

3-7. static 静的


インスタンスを通じて、staticメンバにはアクセスできない!
        class MyStatic
        {
            private static int x = 100;
            private static int y;
            private int z = 10;

            public MyStatic()
            {
                y = 200;
                x++;
            }
            public int getX()
            {
                return x;
            }

            public static int getY()
            {
                // static メソッドの中では static 変数以外は使用できない!
                // z++;

                return y;
            }
            public int getYY()
            {
                return getY();
            }
        }

        static void Main(string[] args)
        {
            MyStatic ms = new MyStatic();
            int x = ms.getX();
            // 使用できない! int y = ms.getY();
            // static メソッドは、インスタンスからは呼び出せない!
            // ↓このようにクラス指定して呼び出す。
            int sy = MyStatic.getY();

            int y = ms.getYY();
            Console.WriteLine("ms.x = {0} / ms.y = {1} / sy = {2}", x, y,sy );

            MyStatic ms2 = new MyStatic();
            // x は、static 変数なので、ms の x も ms2 と同じになる。
            Console.WriteLine("ms.x = {0} / ms2.x = {1}", ms.getX(), ms2.getX());
            
        }
実行すると
ms.x = 101 / ms.y = 200 / sy = 200
ms.x = 102 / ms2.x = 102
となる。




3-6. ICloneable インターフェイスで、クローン生成。 « 3. C# 入門 / 基礎、型、文法、基本? » 3-8. デストラクタ と Dispose と using

C# 入門 & 実践 / C sharp