Ben bir nesnenin özellik Color
bu bir benzeyen bir numaralandırma döndürdüğünü bilmek varsayalım:Özellik C# daki dinamikten alındığında enum özelliğini nasıl kontrol ederim?
enum ColorEnum {
Red,
Green,
Blue
};
ve bilinmeyen tip spesifik bir nesne (I Color
özelliğine sahiptir biliyorum) Color
kümesine sahip olduğunu kontrol etmek istiyorum Red
.
ObjectType thatObject = obtainThatObject();
if(thatObject.Color == ColorEnum.Red) {
//blah
}
Sorun ColorEnum
ile derlemesine yoktur ve nesne türünü bilmiyorum: Bu benim nesne türünü bilselerdi ne yapardım olduğunu.
Bunun yerine aşağıdaki kurulum var:
dynamic thatObject = obtainThatObject();
ve nesne türünü (ve numaralandırma türü) bilmiyorum çünkü döküm olamaz. Color
'u nasıl kontrol etmeliyim?
if(thatObject.Color.ToString() == "Red") {
//blah
}
çalışır ama ben "Günlük WTF" gördüğüm kargo kült kodunun en kötü örneklerinden benziyor.
Denetimi nasıl düzgün yaparım?
enum yan montaj tipi ve sayısal temsiller tüm olası değerleri biliyor musunuz? –
@YohDeadfall Buna güvenmemi tercih ediyorum - kimse orada neyin değiştiğini bilmiyor. – sharptooth
'getThatObject()' (ve dönüş tipi) üzerinde etkiniz var mı? – stefankmitph