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

  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009