我可以在C#中使用变量值作为参考吗?考虑下面的代码,其中“ myPointer”字符串包含我希望输出到控制台的变量的名称...我该怎么做?
string strVar1 =“ Hello World”;
string strVar2 =“再见世界”;
int i = 1;
string myPointer = eval(“ strVar” + i); // C#中没有'eval'...
Console.WriteLine(myPointer); //我要显示strVar1
的值[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的更多信息,请阅读>
使用$"{strVar1}{i}"
或String.Format("{0}{1}")
。我不确定+
的含义,假设您尝试将值连接起来。