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

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • Google Россия

    Google Ро

    9 Temmuz 2007
  • tinycammonitor

    tinycammonit

    14 Aralık 2010