SORU
19 Ocak 2009, PAZARTESİ


Eğer bir sınıf, genel bir sınıftan türetilmiş olup olmadığını kontrol edin

Türetilmiş sınıfları ile benim projeye genel bir Dersim var.

public class GenericClass<T> : GenericInterface<T>
{
}

public class Test : GenericClass<SomeType>
{
}

Type nesne GenericClass den türetilmiş olup olmadığını öğrenmek için herhangi bir yolu var mı?

t.IsSubclassOf(typeof(GenericClass<>))

çalışmıyor.

CEVAP
19 Ocak 2009, PAZARTESİ


Bu kodu deneyin

static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) {
    while (toCheck != null && toCheck != typeof(object)) {
        var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck;
        if (generic == cur) {
            return true;
        }
        toCheck = toCheck.BaseType;
    }
    return false;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • superflyy88

    superflyy88

    8 ŞUBAT 2009