C#如何使用变量值来引用另一个变量或对象(即其他语言中的EVAL)

问题描述 投票:0回答:2

我可以在C#中使用变量值作为参考吗?考虑下面的代码,其中“ myPointer”字符串包含我希望输出到控制台的变量的名称...我该怎么做?

string strVar1 =“ Hello World”;

string strVar2 =“再见世界”;

int i = 1;

string myPointer = eval(“ strVar” + i); // C#中没有'eval'...

Console.WriteLine(myPointer); //我要显示strVar1

的值
c# eval
2个回答
0
投票

[c#中没有类似于'eval'的东西,但是您可以使用反射来创建类型或按名称获取属性。

因此,如果您有类似这样的内容:

class MyCLass
{
string strVar1 ;
string strVar2 ;
}

首先,通过在名称中添加1来获得类型名称:string typeName = "strVar" + "1";

然后您需要从课程中获取财产:

var myPropertyType = Typeof(MyClass).GetProperty(typeName);

您可以通过使用GetValue方法获得strvar1的值之后:

var myValue = myPropertyType.GetValue(instance);

实例是您的MyCLass的实例;

有关reflection的更多信息,请阅读>


-2
投票

使用$"{strVar1}{i}"String.Format("{0}{1}")。我不确定+的含义,假设您尝试将值连接起来。

© www.soinside.com 2019 - 2024. All rights reserved.