你不能那样做。变量名仅在设计时存在。一旦它被编译(没有调试符号),变量名就会丢失。
但是你可以这样做:
var myValues = new Dictionary<string, string>();
myValues["bublegumA"] = "strawberry";
myValues["bublegumB"] = "banana";
string output = myValues["bublegumB"]; // "banana"
ExpandoObject
如果您不喜欢用于设置属性的字典语法,也可以使用 an ,尽管您仍然将其转换为字典以按名称获取值:
dynamic myValues = new ExpandoObject();
myValues.bublegumA = "strawberry";
myValues.bublegumB = "banana";
string output1 = myValues.bublegumB; // "banana"
string output2 = (string)((IDictionary<string, object>)myValues)["bublegumB"]; // "banana"