【问题标题】:Access variable inside while loop from outside (C#)?从外部(C#)访问while循环内部的变量?
【发布时间】:2013-03-13 16:17:42
【问题描述】:

我是 C# 的新手,我正试图从那时起达到 MAX 的价值,所以我可以在外面使用它,但我不能......任何人都有一些想法!提前致谢

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

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

【问题讨论】:

  • 在 while 循环之外创建它。是否需要在 while 循环中启动它?如果没有,请在外面启动
  • 只是一些术语。 “来自外部(C#)”被称为“来自外部范围”outside scope { inside scope } 外部范围可以访问内部范围,但不能反过来。
  • 哎呀,我不得不把它搞砸了。它是:“内部范围可以访问外部范围,但不能反过来”。也就是说,内部作用域可以使用外部作用域声明的变量,但外部作用域不能访问内部作用域声明的变量
  • 我永远无法理解为什么人们会否决这样的问题。提问者是该语言的新手,正在寻求指导。
  • 很高兴,尽情享受 C#!

标签: c# while-loop


【解决方案1】:

在开始 while 循环之前声明 MAX。您拥有它的方式只能在一段时间内访问。

Double MAX = 0;
while (Condition)
            {    

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

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

【讨论】:

  • 如果我想在 while 循环中更改 MAX 的值,更改不会应用到该值!
  • 不太清楚你的意思。如果你在while循环里面改变了MAX的值,然后在循环之后引用它,那么你在while里面设置的值在外面也是有效的,只要你声明的是在进入while之前。跨度>
  • 记得声明为其设置一个值。如果你只是做Double Max; 你仍然会得到Use of unassigned local variable 错误。 (对不起,如果这很明显,但我有这个问题)
【解决方案2】:

您必须在循环之前声明变量。

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

【讨论】:

    【解决方案3】:

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

    我找到了一个非常简单易懂的:http://www.codecandle.com/Articles/191/Csharp/Variables/Variable-scope/codedetail.aspx

    正如许多其他人所提到的,您需要在内部范围之外声明变量才能访问更改。

    一些伪代码

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

    【讨论】:

    • 先生,我想将我的数据添加到另一个类(页面)中的数据网格中。你能给我任何想法吗?My While Loop非常感谢你
    【解决方案4】:

    将 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); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 2016-05-07
      相关资源
      最近更新 更多