单个静态字段的多个值?

Kor*_*ray 2 c# generics static

以下测试代码为 val3 输出 1 而不是 3。为什么?

    private void test()
    {
        MyClass<string> c1 = new MyClass<string>();
        int val1 = c1.IncrementGlobalValue();//--> 1

        MyClass<string> c2 = new MyClass<string>();
        int val2 = c2.IncrementGlobalValue();//--> 2


        MyClass<int> c3 = new MyClass<int>();
        int val3 = c3.IncrementGlobalValue();//--> 1

        MyClass<int> c4 = new MyClass<int>();
        int val4 = c4.IncrementGlobalValue();//--> 2
    }

    internal class MyClass<T>
    {
        private static int globalValue = 0;
        internal int IncrementGlobalValue()
        {
            return ++globalValue;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Dan*_*ite 9

泛型创建具有独立静态状态的新类型。