<分区>
我正在从数据库中读取字符串变量的名称(例如“_datafile”)。我想知道如何使用此字符串访问程序中的命名变量。
我已经尝试过使用字典、哈希表和 switch-case 语句,但我想让变量动态地自行解析。这可能吗?
<分区>
我正在从数据库中读取字符串变量的名称(例如“_datafile”)。我想知道如何使用此字符串访问程序中的命名变量。
我已经尝试过使用字典、哈希表和 switch-case 语句,但我想让变量动态地自行解析。这可能吗?
最佳答案
你的意思是想把字段名作为字符串来获取字段的值吗?
public class MyClass
{
public string _datafile;
public MyClass()
{
_datafile = "Hello";
}
public void PrintField()
{
var result = this.GetType().GetField("_datafile").GetValue(this);
Console.WriteLine(result); // will print Hello
}
}
编辑: @Rick,回复您的评论:
public class MyClass
{
public IEnumerable<string> _parameters = new[] { "Val1", "Val2", "Val3" };
public void PrintField()
{
var parameters = this.GetType().GetField("_parameters").GetValue(this) as IEnumerable;
// Prints:
// Val1
// Val2
// Val3
foreach(var item in parameters)
{
Console.WriteLine(item);
}
}
}
关于c# - 使用包含变量名称的字符串访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122241/