如何在c#或C ++中将字符串转换为变量?
示例(vb6):
dim a as string
dim b as string
b="halo"
a="b"
msgbox a
这应该使输出=晕
这可能吗?..,
感谢回复
答案 0 :(得分:5)
编辑:
我首先误解了你的答案,但现在我看到(你是Gserg)你希望找到一个基于名字的变量。在C#中,你必须通过反射来做到这一点。请参阅以下代码段,并确保已引用System.Reflection。
MyNamespace.MyClass cls = new MyNamespace.MyClass();
FieldInfo fi = cls.GetType().GetField("FieldName");
string value = (string)(fi.GetValue(null, null));
Console.Out.WriteLine(value);
在这里,我在该类中查找字段“FieldName”,然后返回字段的值
另请参阅GetField http://msdn.microsoft.com/en-us/library/system.type.getfield(v=vs.71).aspx
的MSDN页面答案 1 :(得分:2)
你不能。
Reflection不能返回局部变量的名称,只能返回类型和索引。
因此,最简单的是有一本字典:
var d = new Dictionary<string, string>();
d.Add("b", "helo");
MessageBox.Show(d["b"]);
答案 2 :(得分:0)
在C ++中, 不可能 。在C#中,由于反射可能是可能的(但我不确定如何)。