SORU
2 NİSAN 2009, PERŞEMBE


C# Nesne Türü Karşılaştırma

Nasıl iki nesne türü olarak ilan türlerini karşılaştırın.

Eğer iki nesne aynı temel sınıftan aynı türden ya da olup olmadığını bilmek istiyorum.

Herhangi bir yardım için teşekkür ederiz.

örneğin

private bool AreSame(Type a, Type b) {

}

CEVAP
2 NİSAN 2009, PERŞEMBE


a b demek iki nesne. Eğer varsa a b aynı devralma hiyerarşisinde eğer görmek isterseniz, o zaman kullanınType.IsAssignableFrom:

var t = a.GetType();
var u = b.GetType();

if (t.IsAssignableFrom(u) || u.IsAssignableFrom(t)) {
  // x.IsAssignableFrom(y) returns true if:
  //   (1) x and y are the same type
  //   (2) x and y are in the same inheritance hierarchy
  //   (3) y is implemented by x
  //   (4) y is a generic type parameter and one of its constraints is x
}

Eğer varsa biri diğerinin temel bir sınıf olup olmadığını kontrol etmek istiyorsanız, o zaman deneyinType.IsSubclassOf.

Eğer belirli bir temel sınıf biliyorsanız, o zaman sadece is anahtar sözcük:

if (a is T && b is T) {
  // Objects are both of type T.
}

Aksi halde, miras hiyerarşisini doğrudan yürümek Zorundasınız.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GWTLecturer

    GWTLecturer

    18 EKİM 2012
  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008