2011-06-15 22 views
5

... diyelim yüzden çağırır Bar özelliğinin değeri elde etmek, Foo bir özelliğe Bar sahiptir Nesne C# bir özellik olarak bir dize değerlendirmek.. Bir dizge olarak belirtilen bir özelliği vardır

Console.Write(foo.Bar); 

Şimdi ... bir dize değişkeni saklanan "Bar" sahip olduğunu söylemek

string property = "Bar" 

Foo foo = new Foo(); 
foo.Bar değeri property kullanılarak

nasıl alacağı? PHP yapıyor kullanımına ben nasıl

$property = "Bar"; 

$foo = new Foo(); 

echo $foo->{$property}; 

cevap

6
Foo foo = new Foo(); 
var barValue = foo.GetType().GetProperty("Bar").GetValue(foo, null) 
1
Sen yansıma kullanmak

:

PropertyInfo propertyInfo = foo.GetType().GetProperty(property); 
object value = propertyInfo.GetValue(foo, null); 

null çağrısında endeksli özellikleri için orada , sahip olduğunuz şey değil.

1

Bunu yapmak için yansımayı kullanmanız gerekir. Böyle

şey

foo.GetType().GetProperty(property).GetValue(foo, null); 
ilgilenecek gerekir
İlgili konular