c#类的属性包

本文关键字:属性 | 更新日期: 2023-09-27 18:10:16

像javascript语言那样访问c#类属性会让事情变得容易得多。

我们如何在c#中实现它?

例如:

someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);

c#类的属性包

通过添加几行代码,您可以在类中启用类似属性包的功能:

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);
    }
}