0
借用此問題的代碼How do I check if more than one enum flag is set?我試圖實現執行此測試的通用擴展。檢查是否在通用擴展中設置了多個標誌
我的第一次嘗試是以下。
public static bool ExactlyOneFlagSet(this Enum enumValue)
{
return !((enumValue & (enumValue - 1)) != 0);
}
這就造成了
操作 ' - ' 不能應用於類型 'System.Enum' 和 '廉政'
OK有意義的操作數,所以我想我會嘗試這樣的事情
public static bool ExactlyOneFlagSet<T>(this T enumValue) where T : struct, IConvertible
{
return !(((int)enumValue & ((int)enumValue - 1)) != 0);
}
這就造成了
不能鍵入「T」轉換爲「廉政」
閱讀有關此行爲,但隨後如何在地球上可以在此擴展方法實施之後也是情理之中。任何人都可以幫助嗎?
看起來你,你需要提供一個文化! int v = enumValue.ToInt32(System.Threading.Thread.CurrentThread.CurrentCulture);我錯了嗎?否則看起來很美,現在測試 –