Membaca ini , saya belajar bahwa memungkinkan metode untuk menerima parameter dari berbagai jenis dengan menjadikannya metode generik. Dalam contoh, kode berikut digunakan dengan batasan tipe untuk memastikan "U" adalah IEnumerable<T>.
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
Saya menemukan beberapa kode lagi yang memungkinkan menambahkan beberapa batasan tipe, seperti:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
Namun, kode ini muncul untuk menegakkan yang argharus berupa tipe ParentClass dan ChildClass . Yang ingin saya lakukan adalah mengatakan bahwa arg bisa berupa ParentClass atau ChildClass dengan cara berikut:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
Bantuan Anda dihargai seperti biasa!
where T : string, sebagai stringadalah disegel kelas. Satu-satunya hal berguna yang dapat Anda lakukan adalah mendefinisikan kelebihan stringdan T : Exception, seperti yang dijelaskan oleh @ Botz3000 dalam jawabannya di bawah ini.
argadalah yang ditentukan oleh object- jadi mengapa tidak hanya menghapus obat generik dari gambar dan membuat jenisnya arg object? Apa yang kamu dapat?