2013-03-24 2 views
2

Я новичок в C#, и я пытаюсь достичь значения MAX с того времени, поэтому я могу использовать его снаружи, но я не могу ... у кого-нибудь есть идеи !!! Спасибо In AdvanceДоступ к переменной внутри внутри цикла (C#)?

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

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

Создать его вне цикла. Есть ли необходимость инициировать его внутри цикла while? Если нет, инициируйте его за пределами – Savlon

+2

Просто немного терминологии. «снаружи (C#)» называется «из внешней области видимости» «внешняя область видимости (внутри области)», внешняя область имеет доступ к внутренней области, но не наоборот. –

+1

woops, ofc Мне пришлось ввернуть это. Это: «внутренняя область доступа имеет доступ к внешней области, но не наоборот». Это означает, что внутренний объем может использовать переменные, объявленные во внешней области, но внешняя область не может получить доступ к переменным, объявленным во внутренней области. –

ответ

5

Объявление MAX перед началом цикла while. То, как у вас есть, вы можете получить доступ только в то время.

Double MAX = 0; 
while (Condition) 
      {  

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

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

Что делать, если я хочу внести изменения в значение MAX внутри цикла while, изменения не будут применяться к значению! – Jimey1000

+0

Не совсем уверен, что вы имеете в виду. Если вы изменяете значение MAX внутри цикла while, а затем ссылаетесь на него после цикла, значение, которое вы устанавливаете внутри while, также является допустимым вне, если вы уже объявили это, прежде чем вводить время. –

+3

Не забудьте указать * и * установить для него значение. Если вы просто выполните «Double Max», вы все равно получите ошибку «Использовать непризнанную локальную переменную». (извините, если это очевидно, но у меня были проблемы с этим) – Parziphal

2

Вы должны объявить переменную ПЕРЕД петлей.

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

Объявить 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); 
1

Казалось бы, основная проблема заключается в понимании того, как области видимости работы , Поиск Google для «C#, как работает область действия» (или аналогичный) может оказаться полезным.

Я нашел, что это довольно просто и легко понять: http://www.codecandle.com/Articles/191/Csharp/Variables/Variable-scope/codedetail.aspx

Так как многие другие говорили вам нужно объявить переменную за пределами внутренней рамки для того, чтобы иметь доступ к изменениям.

Некоторые псевдокод

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

Сэр. Я хочу добавить свою привязку к datagrid в другом классе (Страница), который используется во время. Не могли бы вы дать мне какое-либо представление об этом? [My While Loop] (https://pastebin.com/VgiNnhbt) Большое вам спасибо – tpbafk

Смежные вопросы