gpt4 book ai didi

c# - 如何通过名称查找访问对象的属性?

转载 作者:行者123 更新时间:2023-11-30 14:35:36 30 4
gpt4 key购买 nike

我在 ActionScript 方面做了很多工作,很高兴看到它与 C# 非常相似,但我遗漏了一件事,那就是“动态引用”。

例如,可以使用数组运算符[] 来完成动态引用。因此,例如,您还可以通过以下两种方式访问​​属性 some_thing.something_else:

some_thing["something_else"]
// or

some_thing[some_var] // where some_var is a variable holding a string
// e.g.: some_var = "something_else";

换句话说,数组语法相当于指定属性本身。

动态引用对象的另一个选项是使用 eval() 全局函数。

那么,我的问题是:是否有可能以类似于 ActionScript 的方式在 C# 中引用属性?

最佳答案

我能看到的唯一方法是使用动态,特别是 ExpandoObject .随着ExpandoObject类你可以做这样的事情:

dynamic employee;

employee = new ExpandoObject();
employee.Name = "John Smith";
employee.Age = 33;

尽管employee没有任何这些属性,此代码将编译并运行。它不仅可以工作,而且动态属性甚至是强类型的。

按键访问属性也很容易。 ExpandoObject工具 IDictionary<string,object> ,所以它就像沮丧一样简单:

var dictEmployee = employee as IDictionary<string,object>;
Debug.WriteLine(dictEmployee["Age"].ToString);

此代码将导致 33被打印到调试输出中。

我不建议普遍使用这种方法,但有时它会派上用场。

关于c# - 如何通过名称查找访问对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814129/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com