這是一個比真正的問題更多的文檔。這似乎不是已經對SO尚未解決(除非我錯過了),所以這裏有雲:泛型類的靜態成員是否與特定實例綁定?
試想一下,包含靜態成員的通用類:
class Foo<T> {
public static int member;
}
是否存在的一個新實例每個特定類的成員,還是所有Foo類都只有一個實例?
Foo<int>.member = 1;
Foo<string>.member = 2;
Console.WriteLine (Foo<int>.member);
結果是什麼,而這是哪裏的行爲記錄在案:
它可以很容易地通過這樣的代碼驗證?
簡短回答:每個* actual *類都有一個新實例,即每個類型使用一個'T'('Foo'和'Foo '代表兩個不同的類,每個類都有一個實例,但是'Foo '的幾個實例將共享'member'的單個實例)。有關更詳細的示例,請參閱:http://stackoverflow.com/a/38369256/336648 –
Kjartan
2016-07-14 08:45:46