当nameof被称为列表索引时,它有可能得到一个变量吗?我的RUN()方法中的第一行编译并生成"x",第二行不编译,表示表达式没有名称。但是它确实有一个名称--我如何在运行时指示它来获得这个名称,或者通过列表这是不可能的?
class list_experiment
{
public string x = "xx";
public List<string> list;
public list_experiment()
{
list = new List<string>() { x };
}
}
static public void RUN()
{
list_experiment a = new list_experiment();
Console.WriteLine(nameof(a.x));
Console.WriteLine(nameof(a.list[0])); // Doesn't compile
Console.ReadKey();
}发布于 2018-10-11 15:09:57
列表中的值是对字符串值**的引用-没有将其绑定回x,这是对同一字符串的引用。
nameof是一种编译时工具。添加到List<T>是一个运行时工具,编译器无法合理地为您跟踪这些功能。
https://stackoverflow.com/questions/52763424
复制相似问题