SORU
31 Mayıs 2012, PERŞEMBE


Genel yöntem birden fazla(VEYA) türü kısıtlaması

this, ben Okuma bir yöntem genel bir yöntem yaparak birden çok türde parametre kabul etmek izin vermek için mümkün olduğunu öğrendim. Bu örnekte, aşağıdaki kodu "U" IEnumerable<T>. emin olmak için bir tür kısıtlaması ile kullanılır

public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
    return arg.First();
}

Birden fazla tür kısıtlamaları ekleme izin, fazla kod gibi buldum:

public void test<T>(string a, T arg) where T: ParentClass, ChildClass 
{
    //do something
}

Ancak, bu kod arg ParentClass Bir tür olmalıdır uygulamak için görünürveChildClass. Yapmak istediğim şey arg ParentClass Bir tür olabileceğini söylüyorlaryaAşağıdaki şekilde ChildClass:

public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}

Yardımına her zaman takdir edilir!

CEVAP
31 Mayıs 2012, PERŞEMBE


Bu mümkün değil. Ancak, belirli türleri için aşırı tanımlayabilirsiniz:

public void test(string a, string arg);
public void test(string a, Exception arg);

Eğer bu genel bir sınıfın parçası ise, bu yöntem genel sürümü tercih olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • SegaAmerica

    SegaAmerica

    5 Mart 2008
  • ThePhestor

    ThePhestor

    22 Mart 2011