Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';不要使用嵌套变量_C#_Asp.net - Fatal编程技术网

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或任何东西。只需为它指定一个初始化值,然后就可以使用它了。