C# Can';不要使用嵌套变量
我不能使用嵌套块中声明的变量 例如:C# Can';不要使用嵌套变量,c#,asp.net,C#,Asp.net,我不能使用嵌套块中声明的变量 例如: if(condition){ var test = "success"; { 如果尝试使用测试变量,则会出现编译错误: CS0103:名称“test”在当前上下文中不存在 这是因为它是一个local变量,只能在大括号中访问。不在外面 为了使它也可以在外部访问,您可能需要根据需要在函数或方法之外或页面的开头声明它 查看局部和全局变量,以及变量的范围概念 这样就可以了。要在块外使用变量,需要在块外声明它 由于即使未在块中运行代码,变量也必须有一
if(condition){
var test = "success";
{
如果尝试使用测试变量,则会出现编译错误:
CS0103:名称“test”在当前上下文中不存在
这是因为它是一个
local
变量,只能在大括号中访问。不在外面
为了使它也可以在外部访问,您可能需要根据需要在函数或方法之外或页面的开头声明它
查看局部
和全局
变量,以及变量的范围
概念
这样就可以了。要在块外使用变量,需要在块外声明它 由于即使未在块中运行代码,变量也必须有一个值,因此必须设置初始值:
string test = null;
if (condition) {
test = "success";
}
或者使用else
块以其他方式设置值:
string test;
if (condition) {
test = "success";
} else {
test = null;
}
您可以简单地将其写成:
var test = condition ? "success" : "failure";
...
// use test as required.
(当条件为false时,将“failure”替换为测试所需的任何值)。看起来您甚至没有显示生成此错误消息的真实代码。具体在哪一行?解决方法是将变量移到范围之外。第三行额外的开口大括号属于什么?如果花括号不是某个构造的一部分,你不能无缘无故地打开它。如果我在外部声明它,任何赋值都不会出现在块外部,我得到:CS0165:使用未赋值局部变量“test”,这是因为你可能这样写:
var test代码>。这样写:var test=”“代码>或var测试=1代码>或任何东西。只需为它指定一个初始化值,然后就可以使用它了。