[英]Static enum class member
我可以將我的enum
聲明為另一個類中的靜態成員嗎? 我只需要這個枚舉中的一個實例
public enum MyEnum
{
Add,
Remove
}
public class MyClass
{
private static MyEnum _myEnum;
public MyEnum Enum
{
get { return _myEnum; }
set { _myEnum = value; }
}
}
這樣可以嗎?
我強烈建議將屬性也設為static
因為從非靜態屬性獲取/設置靜態字段毫無意義。
這不僅令人困惑。 我稱呼乞討的錯誤。
考慮一下:
var c1 = new MyClass { Enum = MyEnum.Add };
var c2 = new MyClass { Enum = MyEnum.Add };
c2.Enum = MyEnum.Remove;
Console.Write(c1.Enum.ToString());
您期望輸出什么? 現在兩個實例都具有MyEnum.Remove
即使我只設置了一個。
如果在上面將其設置為靜態,則什至不會編譯,這是一件好事。
您需要通過類名使用該屬性,該名稱清楚地表明它是靜態屬性:
MyClass.Enum = MyEnum.Remove;
也將屬性定義為static
public static MyEnum Enum
{
get { return _myEnum; }
set { _myEnum = value; }
}
假設您只能通過創建的MyClass對象訪問它,這是完全好的。 如果希望能夠在沒有實例化對象的情況下設置或獲取Enum,則IE就像_myEnum一樣將Enum設為單例,則應將其聲明為靜態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.