Если вы получите доступ к такому свойству
anObject.Address = "An address Value"
Код будет очень "статичным".Он всегда будет иметь доступ к Address
Вы можете создать более динамический код, подобный этому
void SetProperty (string propertyName, string value)
{
anObject.Properties[propertyName] = value;
}
Это можно сделать, если вы не знаете во время компиляции, какое свойство будет доступно.
В c # вы обычно используете Dictionary<TKey,TValue>
для хранения пар ключ / значение.Автоматический доступ к свойствам через KVC, как в Objective-C, не поддерживается в c #.Вы должны либо объявить свойство как
public Dictionary<string,string> Properties { get; private set; }
и создать его экземпляр в конструкторе класса с помощью
Properties = new Dictionary<string,string>();
, а затем получить к нему доступ
anObject.Properties[propertyName] = value;
вам нужно будет использовать Reflection
для доступа к свойству
Type type = anObject.GetType();
// Or Type type = typeof(TypeOfAnObject);
PropertyInfo prop = type.GetProperty(propertyName);
prop.SetValue(anObject, propertyValue, null);
Однако это не очень эффективно.