C# 如何使变量在if-else语句之外可见?
C# 如何使变量在if-else语句之外可见?,c#,C#,rk的赋值语句无法从“if-else”语句访问变量xnbb。如何使其可见?我必须创建一些带有“return”的新方法吗 var length=Math.Min(xr_arr.Count(),24); 对于(int y=0;yMath.Exp(Math.Log(2)*(-y))) { var xn=xr_arr[y]-Math.Exp(Math.Log(2)*(-y)); int xnbb=1; } 其他的 { int xnbb=0; } var rk=xnbb+1*Math.Round(Math
rk
的赋值语句无法从“if-else”语句访问变量xnbb
。如何使其可见?我必须创建一些带有“return”的新方法吗
var length=Math.Min(xr_arr.Count(),24);
对于(int y=0;y<24;y++)
{
如果(xr_arr[y]>Math.Exp(Math.Log(2)*(-y)))
{
var xn=xr_arr[y]-Math.Exp(Math.Log(2)*(-y));
int xnbb=1;
}
其他的
{
int xnbb=0;
}
var rk=xnbb+1*Math.Round(Math.Exp(Math.Log(2)*(24-y));
}
我必须创建一些带有“return”的新方法吗
不,您只需在if-else
子句之外声明它:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
else
{
xnbb = 0;
}
有两点需要注意:
xnbb
默认为0
,您可以完全删除else
子句:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
if-else
子句之外声明它:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
else
{
xnbb = 0;
}
有两点需要注意:
xnbb
默认为0
,您可以完全删除else
子句:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
按如下方式重新排列您的行:
int xnbb;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
else
{
xnbb = 0;
}
var rk = xnbb + ...
必须在包含此变量所有用法的范围内声明变量
xnbb
。在这种情况下,它位于for
循环中。按如下方式重新排列行:
int xnbb;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
xnbb = 1;
}
else
{
xnbb = 0;
}
var rk = xnbb + ...
必须在包含此变量所有用法的范围内声明变量
xnbb
。在这种情况下,它位于for
循环中。在块中声明的变量仅在该块中可用。您可以在上找到有关变量范围的更多详细信息
所以,为了使变量在多个作用域中可用,您需要在讨论中两个作用域的祖先作用域中声明该变量
在您的例子中,您可以在if
语句之前声明xnbb
变量,就像在您的例子中,for
范围包括if
一个变量一样,这就是我上面提到的祖先:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
int xnbb = 1;
}
else
{
xnbb = 0;
}
块内声明的变量仅在该块内可用。您可以在上找到有关变量范围的更多详细信息 所以,为了使变量在多个作用域中可用,您需要在讨论中两个作用域的祖先作用域中声明该变量 在您的例子中,您可以在
if
语句之前声明xnbb
变量,就像在您的例子中,for
范围包括if
一个变量一样,这就是我上面提到的祖先:
int xnbb = 0;
if (xr_arr[y] > Math.Exp(Math.Log(2) * (-y)))
{
var xn = xr_arr[y] - Math.Exp(Math.Log(2) * (-y));
int xnbb = 1;
}
else
{
xnbb = 0;
}