5 HAZİRAN 2009, Cuma
C Nesnelerin Özelliklerini Bir Döngü#
Dont maçı hangi konular üzerinde ortak özellikleri döngü ve kullanıcılarını uyarmak istiyorum aynı türden iki nesne var.
Nesne ne içerdiğini bilmeden bunu yapmak mümkün mü?
Teşekkürler
CEVAP
5 HAZİRAN 2009, Cuma
Evet, yansıma - her emlak tipi uygun Equals
uygular varsayarsak. Alternatif yinelemeli olarak ama bazı bilinen tüm türleri için ReflectiveEquals
kullanmak olacaktır, ama bu biraz zor alır.
public bool ReflectiveEquals(object first, object second)
{
if (first == null && second == null)
{
return true;
}
if (first == null || second == null)
{
return false;
}
Type firstType = first.GetType();
if (second.GetType() != firstType)
{
return false; // Or throw an exception
}
// This will only use public properties. Is that enough?
foreach (PropertyInfo propertyInfo in firstType.GetProperties())
{
if (propertyInfo.CanRead)
{
object firstValue = propertyInfo.GetValue(first, null);
object secondValue = propertyInfo.GetValue(second, null);
if (!object.Equals(firstValue, secondValue))
{
return false;
}
}
}
return true;
}
Bunu Paylaş:
Nasıl bir sınıfın tüm özelliklerini dö...
Başka bir dizi nesnelerin özelliklerin...
Nasıl iki JavaScript nesnelerin özelli...
Gidon/Bıyık yerleşik bir nesnenin özel...
Bash dosya içeriğini döngü?...