错误:当前上下文中不存在该名称

时间:2017-12-14 17:58:19

标签: c# syntax-error

我正在编写一个解决特定数学问题的程序。以下是该计划的代码段(' ......'表示我已经删除了代码):

Console.Write("First Natrual Number: ");
long N1 = Convert.ToInt64(Console.ReadLine());

...

Console.Write("Upper Product Limit (to & excluding): ");
long L = Convert.ToInt32(Console.ReadLine());

//Determines upper limits of sums.
double L1_temp = (L / N1);

...

if ((L%N1) ==  0)
{
 long L1 = Convert.ToInt64(L1_temp - 1);
}else
{
 long L1 = Convert.ToInt64(Math.Floor(L1_temp));
}

...

//Calculating Product Sums.

long S1 = 0;
long a = L1; •
while(a > 0)
{
 S1 += (N1 * a);
 a -= 1;
}

当我尝试在Visual Studio中构建程序时,我得到错误"名称' L1'在当前上下文中不存在"。标有子弹点(•)的行是显示上述错误的行。

有人知道为什么会出现这种错误,因为' L1'在上面的if语句中定义,以及如何解决它?

4 个答案:

答案 0 :(得分:2)

名称的范围限定为C#中的块。当你有

{
   var n = whatever; 
}
...
{
    var n = whatever;
}

然后你有两个名为n 的变量。

将变量声明置于要在以下位置使用变量的块级别:

long l1;
if (whatever)
{
   l1 = whatever;
} 
else
{
   l1 = whatever;
}
// l1 is still in scope here.

答案 1 :(得分:0)

你需要这样做

#include <Eigen/Dense>

MatrixXf m(4, 3);
m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
MatrixXf dots(4, 1)
dots << 2,2,2,2;
代码中的

L1(2个不同的)只存在于if和else条件块

答案 2 :(得分:0)

在If语句中创建了L1。它们不存在于该上下文/范围之外。

而是这样做:

<input type="text" name="saa_<?php echo $row1['Tube_No']; ?>" value="<?= $row1['Pin_No']; ?>">

答案 3 :(得分:0)

尝试在if else语句之外声明L1,如下所示:

git format-patch <sha_id_from>...<sha_id_to> <path1> <path2>