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

  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • READ DESCRIPTION NOW!!!!!!!

    READ DESCRIP

    18 ŞUBAT 2009
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006