Sadece bir tane enum bayrağı ayarlanmış olup olmadığını bilmek istiyorum, hangileri değil. Benim şu anki düşüncem, 2'nin gücü olup olmadığını kontrol etmektir. Enum türlerine göre daha iyi bir yol var mı? enum bayrakların açık kombinasyonlarını tanımlamak etmezse değer enum tanımlanması durumundaBirden fazla numara bayrağının ayarlanıp ayarlanmadığını nasıl kontrol ederim?
[Flags]
enum Foo
{
Flag1 = 0x01,
Flag2 = 0x02,
Flag3 = 0x04,
Flag4 = 0x08,
Flag5 = 0x10,
Flag6 = 0x20,
Flag7 = 0x40,
Flag8 = 0x80
}
private bool ExactlynOneFlagSet(Foo myFoo)
{
var x = (byte) myFoo;
return (x != 0) && ((x & (x - 1)) == 0); //Check if a power of 2
}
if(!ExactlynOneFlagSet(Foo myFoo))
{
//Do something
}
Bu oldukça basit görünüyor, evet. Neden böyle yapmıyorsun? – Groo
Lütfen unvanlarınızı "C#:" ve benzeriyle eklemeyin. Etiketler bunun için var. –
Neden bunun bir soru olarak gizlenmiş bir "çözümüme bakın" sorusu olduğunu hissediyorum ... –