Tag: local variables

在finally块上使用未分配的局部变量

i在这个例子中什么时候可以取消分配? int i; try { i = 2; } catch { i = 3; } finally { string a = i.ToString(); }

Lambda分配局部变量

请考虑以下来源: static void Main(string[] args) { bool test; Action lambda = () => { test = true; }; lambda(); if (test) Console.WriteLine(“Ok.”); } 它应该编译,对吗? 嗯,事实并非如此。 我的问题是:根据C#标准,这个代码应该编译还是这个编译器错误? 错误消息: Use of unassigned local variable ‘test’ 注意:我知道 ,如何修复错误,我部分知道 ,为什么会发生。 但是,局部变量是无条件分配的,我想,编译器应该注意到,但事实并非如此。 我想知道为什么。 评论答案:C# 允许声明未分配的变量,这实际上非常有用,即。 bool cond1, cond2; if (someConditions) { cond1 = someOtherConditions1; cond2 = someOtherConditions2; } else { […]

如何在C#中声明一个局部常量?

如何在C#中声明一个局部常量? 与在Java中一样,您可以执行以下操作: public void f(){ final int n = getNum(); // n declared constant } 如何在C#中做同样的事情? 我尝试使用readonly和const但似乎没有工作。 任何帮助将不胜感激。 谢谢。