Okuma bu , ben bir yöntem genel bir yöntem yaparak birden fazla türde parametrelerini kabul etmesi için mümkündü öğrendik. Örnekte, aşağıdaki kod, "U" öğesinin bir olduğundan emin olmak için bir tür kısıtlamasıyla birlikte kullanılır IEnumerable<T>.
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
Birden fazla tür kısıtlaması eklemeye izin veren bazı kodlar buldum:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
Ancak bu kod zorunlu kılmak amacıyla görünen argbir türü hem olmalı ParentClass ve ChildClass . Ne yapmak istiyorum arg bir tür ParentClass veya ChildClass aşağıdaki şekilde olabilir:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
Yardımınız her zamanki gibi takdir edilmektedir!
where T : stringgibi yazılı olarak stringda bir faydası olmadığını unutmayın . Yapabileceğiniz tek yararlı şey , @ Botz3000 tarafından aşağıdaki cevabında açıklandığı gibi ve aşırı yükleri tanımlamaktır . stringT : Exception
arg, tanımlanmış yöntemlerdir object- neden sadece jenerikleri resimden kaldırmak ve türünü yapmak değil arg object? Ne kazanıyorsun?