en bu enum var diyelim: Ben sadece can ilk enum değerler arasındanasıl karmaşık sıralama değeri dize temsilini almak için
SomeType easyType = SomeType.Val1 | SomeType.Val2;
SomeType complexType = SomeType.All;
Ben döngü isterseniz:
[Flags]
public enum SomeType
{
Val1 = 0,
Val2 = 1,
Val3 = 2,
Val4 = 4,
Val5 = 8,
Val6 = 16,
All = Val1 | Val2 | Val3 | Val4 | Val5 | Val6
}
ve bazı değişkenler yapın:
foreach(string s in easyType.ToString().Split(','))
{ ... }
Ancak, elbette 'complexType' ı değeri elde 'Tümü', aynı yaklaşımı uygulamaya çalışırken Geçerli, aynı zamanda, enum'un olası değerlerinden biridir. Ancak, SomeType.All'ın hangi değerlerden oluştuğunu görmek için net bir yol var mı? Ben böyle tüm değerleri üzerinden manuel döngü yapabilir biliyorum:
if(complexType.HasFlag(ManualType.Val1) && ...
Sorunun bu enum içine 'All' koymak gerektiğini düşünüyorum neden örneğin, bir That. Bunu [Flags] 'olarak işaretlediğinizden, içinde herhangi bir kombinasyon koymak kötü bir fikirdir. –
O zamanlar (ve diğerleri) bir şey için SomeType kullanırken her zaman enumların düzgün kombinasyonunu kullanmayı hatırlamak zorunda kalacaklar. – IamDeveloper
Orijinal enum'u anlamsız 'SomeType' yerine gönderebilir misiniz? –