c#类的属性包
本文关键字:属性 | 更新日期: 2023-09-27 18:10:16
像javascript语言那样访问c#类属性会让事情变得容易得多。
我们如何在c#中实现它?
例如:someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);
通过添加几行代码,您可以在类中启用类似属性包的功能:
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); }
}
}
您可以从Dictionary<string, object>
派生出每个类。但是,你可以简单地使用JavaScript,而不是滥用c#。
这段代码可以运行
dynamic user= new ExpandoObject();
user.name = "Anonymous";
user.id=1234
user.address="12 broad way"
user.State="NY"
导入系统。动态名称空间。
可以使用dynamic
关键字代替。在这里试试
using System;
using System.Dynamic;
public class Program
{
public static void Main()
{
dynamic foo = new ExpandoObject();
foo.Property = "simple string";
Console.WriteLine(foo.Property);
}
}