Ошибка в коде, связанная с областями видимости переменных - C#

Узнай цену своей работы

Формулировка задачи:

        public uint Spend( uint Money )
        {
            if ( (this.Money - Money) < 0 )
            {
                uint tmp = this.Money;
                this.Money = 0;
                return Money - tmp;
            }
 
            uint tmp = this.Money;
            this.Money -= Money;
 
            return tmp - Money;
        }
Подчеркивает uint tmp = this.Money; ( которая в блоке if ) и говорит:
A local or parameter named 'tmp' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
tmp же объявлена в блоке видимости:
            if ( (this.Money - Money) < 0 )
            {
                uint tmp = this.Money;
                this.Money = 0;
                return Money - tmp;
            }
Какое отношения может быть между ней и тем что с низу я не пойму. На msd они ее выше по коду объявили, тут я с ними согласен, но в этом случая непонятно... http://msdn.microsoft.com/ru-ru/library/973aa6bt(v=vs.90).aspx

Решение задачи: «Ошибка в коде, связанная с областями видимости переменных»

textual
Листинг программы
( (this.Money - Money) < 0 )

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5