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

  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009