4

访问像 javascript 语言这样的 c# 类属性会让生活变得更轻松。

我们如何在 C# 中做到这一点?

例如:

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

4 回答 4

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); }
    }
}
于 2013-04-21T12:38:37.640 回答
2

您可以从Dictionary<string, object>. 但是,您可以简单地使用 JavaScript 而不是滥用 C#。

于 2013-04-21T12:59:39.343 回答
1

这段代码可以工作

dynamic user= new ExpandoObject();
user.name = "Anonymous";
user.id=1234
user.address="12 broad way"
user.State="NY"

导入 System.Dynamic 命名空间。

于 2013-07-30T18:14:28.987 回答
0

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);
    }
}
于 2013-04-21T12:44:15.623 回答