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

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • spederson7

    spederson7

    17 Temmuz 2006