Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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#)?_C#_While Loop - Fatal编程技术网

从外部循环时访问内部变量(C#)?

从外部循环时访问内部变量(C#)?,c#,while-loop,C#,While Loop,我是C#的新手,我试图从一开始就达到MAX的价值,这样我可以在外面使用它,但我不能…任何人都有一些想法!!!提前谢谢 while (Condition) { Double MAX = somecode..... ..... } Console.WriteLine("The OPTIMAL Value : " + MAX); 在启动while循环之前声明MAX。按照您的方式,您只能在一段时间内访问它 Double MAX =

我是C#的新手,我试图从一开始就达到MAX的价值,这样我可以在外面使用它,但我不能…任何人都有一些想法!!!提前谢谢

while (Condition)
{    
    Double MAX = somecode.....
                         .....
}

Console.WriteLine("The OPTIMAL Value : " + MAX); 

在启动while循环之前声明MAX。按照您的方式,您只能在一段时间内访问它

Double MAX = 0;
while (Condition)
            {    

                MAX = somecode.....
                                      .....
            }

            Console.WriteLine("The OPTIMAL Value : " + MAX); 

必须在循环之前声明变量

Double MAX;
while (Condition)
{
    MAX = somecode....
}
Console.WriteLine("The OPTIMAL Value : " + MAX);

将MAX声明为循环外的变量,例如更改变量名,也不要将保留字用作变量名

var dMax = default(double);//this is equivalent to writing Double dMax = 0 when debugginb it will give you this value 0.0

while (Condition)
{    
    dMax = somecode.....
}
Console.WriteLine("The OPTIMAL Value : " + dMax); 

似乎根本的问题在于理解范围是如何工作的。谷歌搜索“C#how scope works”(或类似内容)可能会有所帮助

我找到了一个非常简单易懂的:

因此,正如许多其他人提到的那样,您需要在内部范围之外声明变量,以便访问更改

一些伪代码

// declare variable;
{
  // change variable;
}
// use changed variable

在while循环之外创建它。是否需要在while循环中启动它?如果不是的话,就从外面开始,只是一些术语。“从外部(C#)”被称为“从外部作用域”
外部作用域{inside scope}
外部作用域可以访问内部作用域,但不能通过其他方式访问内部作用域。它是:“内部范围可以访问外部范围,但不能反过来访问”。这意味着内部作用域可以使用在外部作用域中声明的变量,但是外部作用域不能访问在内部作用域中声明的变量。我永远不会理解为什么人们会否决这样的问题。询问者是新的语言,正在寻找指导。很高兴,享受乐趣,享受C#!如果我想在while循环中更改MAX的值,那么这些更改将不会应用于该值!我不太清楚你的意思。如果在while循环内部更改MAX的值,然后在循环之后引用它,则在while内部设置的值在外部也是有效的,只要您在进入while之前已声明。请记住声明并为其设置值。如果您只需执行
双倍最大值
您仍然会得到未分配局部变量的
使用
错误。(很抱歉,如果这很明显,但我对此有问题)先生,我想将我的数据添加到另一个类(页面)中的datagrid中,而该类(页面)中的数据是。你能告诉我怎么做吗?多谢各位