kullanarak statik yöntem çağırma Type
değişkeninin değerini ve statik yöntemin adını bildiğimi varsayarak, Type
statik yöntemini nasıl çağırabilirim? Bir Type t
verilen Yani Tür
public class FooClass {
public static FooMethod() {
//do something
}
}
public class BarClass {
public void BarMethod(Type t) {
FooClass.FooMethod() //works fine
if (t is FooClass) {
t.FooMethod(); //should call FooClass.FooMethod(); compile error
}
}
}
, objektif
Type t
taşımaktadır sınıfına
FooMethod()
aramak. Temel olarak
typeof()
operatörünü tersine çevirmem gerekiyor. Bunun için yansıma kullanarak anlamı yok gibi size de
FooClass.FooMethod
diyebilirsiniz yukarıdaki örnekte Tabii
public class BarClass {
public void BarMethod(Type t) {
FooClass.FooMethod() //works fine
if (t == typeof(FooClass)) {
t.GetMethod("FooMethod").Invoke(null, null); //null - means calling static method
}
}
}
:
Teşekkürler Igor, bu işe yaramaz (her ne kadar C# 'de hayal kırıklığına uğramış olsa da - tamamen güvenli değil) Gerçek kodumda, Type değişkeninde olabilecek birçok sınıf var, bu yüzden yansıma gerekli. – MrEff