C#中通过名称获取变量

发布于 2024-10-18 11:40:40 字数 202 浏览 5 评论 0原文

有没有一种方法只需知道变量的名称即可获取变量的值,如下所示:

double temp = (double)MyClass.GetValue("VariableName");

当我通常像这样访问变量时

double temp = MyClass.VariableName;

Is there a way to get the value of a variable just by knowing the name of it, like this:

double temp = (double)MyClass.GetValue("VariableName");

When I normally would access the variable like this

double temp = MyClass.VariableName;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半衬遮猫 2024-10-25 11:40:40

您可以使用反射。例如,如果 PropertyName 是公共属性MyClass 上并且您有此类的实例,您可以:

MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);

如果它是公共 field

MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);

当然,您应该意识到反射并不是免费的。与直接属性/字段访问相比,可能会降低性能。

You could use reflection. For example if PropertyName is a public property on MyClass and you have an instance of this class you could:

MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);

If it's a public field:

MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);

Of course you should be aware that reflection doesn't come free of cost. There could be a performance penalty compared to direct property/field access.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文