我有一個枚舉與10個常量在它。我也有一個類定義如下:MyEnumType tyleType;
檢查屬性是不是從枚舉數列表幾個不同的常量
現在我想檢查tyleType
是不是(!=
)可以說最後5個枚舉成員。我不想寫:
if(tyleType!=MyNumType.10th && tyleType! MyEnumType.9th && /* etc */)
我能在這種情況下做什麼?
我有一個枚舉與10個常量在它。我也有一個類定義如下:MyEnumType tyleType;
檢查屬性是不是從枚舉數列表幾個不同的常量
現在我想檢查tyleType
是不是(!=
)可以說最後5個枚舉成員。我不想寫:
if(tyleType!=MyNumType.10th && tyleType! MyEnumType.9th && /* etc */)
我能在這種情況下做什麼?
您可以將它們添加到集合,並使用Enumerable.Contains
,FE:
MyNumType[] notAllowed = { MyNumType.Tenth, MyNumType.Ninth, ... };
if(!notAllowed.Contains(tyleType))
{
}
或儲存白名單允許它更易讀:
if(allowed.Contains(tyleType)){..}
謝謝你的回答我正在考慮這樣的事情。我想我沒有完全解釋我的問題。在生產過程中,不允許的數量可能會發生變化,所以我定義了一個可以輕鬆更改的獨立靜態類中的常數。我如何使用該號碼將正確的內容添加到不允許的集合中? –
@UriPopov:你想要一個邏輯,它根據一個數字返回枚舉值。這聽起來不像一個好的設計。枚舉不是有序集合。 –
@UriPopov:但你可以使用'MyNumType []'或'列表
您可以使用IsDefined來檢查值在枚舉
if(MyNumType.IsDefined(TypeOf(MyNumType), tyleType)
{
//Code
}
可以請您包括枚舉def。 –
這是無效的枚舉值 –
認爲它是僞代碼。 –