访问像javascript语言这样的c#类属性会让生活变得更轻松。
我们如何在C#中做到这一点?
例如:
someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);
答案 0 :(得分:6)
以下是通过添加几行代码在类中启用类似属性包的功能的方法:
partial class SomeClass
{
private static readonly PropertyDescriptorCollection LogProps = TypeDescriptor.GetProperties(typeof(SomeClass));
public object this[string propertyName]
{
get { return LogProps[propertyName].GetValue(this); }
set { LogProps[propertyName].SetValue(this, value); }
}
}
答案 1 :(得分:1)
此代码可以使用
dynamic user= new ExpandoObject();
user.name = "Anonymous";
user.id=1234
user.address="12 broad way"
user.State="NY"
导入System.Dynamic命名空间。
答案 2 :(得分:0)
dynamic
关键字
dynamic foo = ...
foo.Property = "simple string";
Console.WriteLine(foo.Property);
答案 3 :(得分:0)
您可以从Dictionary<string, object>
派生每个班级。但是,你可以简单地使用JavaScript而不是滥用C#。