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

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013