2014-09-24 31 views
0

是否有可能(以及如何)在方法中匿名使用声明变量?没有在代码本身中使用他们的名字。我必须声明它们的名称(用于可读性+调试)。但我想不使用它们。C#中的匿名变量用法?

我希望它可以像通过反射列出一个类的所有方法名称。


例子:

private static void TestVars() 
{ 
    string dsjkfd4378957439898 = "hello world"; 
    string hgf43789 = "hello world2"; 
    string ntgdklf4589 = "hello world3"; 
    // more strings 

    // print names of ALL string variables above (and their values) 
    // like this but without knowing the names of the string variables 
    Console.WriteLine("dsjkfd4378957439898" + " = " + dsjkfd4378957439898); 
    // ... 
} 
+2

请详细说明您的问题。很难理解你问什么。 – Reniuz 2014-09-24 06:31:06

+1

你的目标是什么? – 2014-09-24 06:31:18

+0

为什么不使用所需类型或对象的一组元素,如果您将使用不同的... – blfuentes 2014-09-24 06:33:06

回答

4

不行,这不行。变量必须有名称。

我要冒险猜测,并说出你可能想要的是一个适当的数据结构,如Dictionary<TKey, TValue>(如果你想要名字)或List<T>(如果你不想要名字)。一个适当的调试器将能够检查数据结构。

你无法列出变量的原因是像变量名称这样的东西没有存储在结果字节码中 - 所有剩下的可能是一个索引。另外,一些变量可能会被优化掉,并在非调试版本中完全消失。变量名称和位置将存储在用于调试构建的调试信息中,但没有标准的访问方式,因为它只是调试器应该使用的信息,而不是您自己的逻辑。

+0

我没有问两个问题。我知道如何列出和调用类的方法。我举了一个我想如何处理变量的例子。 – Bitterblue 2014-09-24 06:46:42

+0

哦,对不起。我想我误解了。我添加了一个解释,为什么你不能列出变量。 – 2014-09-24 06:48:38