Belirli bir türün, parametre miktarından bağımsız olarak bir eylem temsilcisi olup olmadığını kontrol etmeye çalışıyorum.Belirli bir türün Action degeni olup olmadığını kontrol etme
Aşağıdaki kod, bunu nasıl yapacağımı bildiğim tek yoldur.
public static bool IsActionDelegate(this Type source)
{
return source == typeof(Action) ||
source.IsOfGenericType(typeof(Action<>)) ||
source.IsOfGenericType(typeof(Action<,>)) ||
....
source.IsOfGenericType(typeof(Action<,,,,,,,,,,,,,,,>));
}
IsOfGenericType()
Daha iyi bir öneri?
İsme göre arama yapılıyorsa, adın bir kullanıcı adı değil, bir kitaplık ad alanından gelmesi durumunda, o kadar da kötü. –
Harika bir fikir, teşekkürler! Genel bir Delegate.CreateDelegate yöntemi yapmaya çalışıyorum. Örneğin. 'CreateDelegate> (sahibi, yöntemi);' Ben mümkün olup olmayacağını henüz bilmiyorum devam eden bir çalışmadır bu. Ama bu yüzden jenerik parametreyi analiz etmem ve ne tip bir temsilci beklendiğini kontrol etmem gerekiyor. –
@Ritch - yerine özellik denetimi javascript tarayıcı türünü denetlemek hatırlatıyor - daha sonra daha temiz. Belki bu durumda haksızlık olur, ama kesinlikle zorunda olmadığım takdirde isme dokunmazdım. Noel ağacı – BrokenGlass