Visual Studio Ошибка? - PullRequest
       1

Visual Studio Ошибка?

1 голос
/ 30 января 2012

Я столкнулся с чем-то странным, и я не уверен, что это ошибка в Visual Studio, или, может быть, мое невежество обманывает меня.

У меня есть две частные переменные класса:

class MyClass
{
    private MyList<A> aList;
    private MyList<B> bList;
    [...]

И где-то в коде я впервые использую эти переменные.

    public void MyMethod()
    {
        object[] generatorOutput = Generator.Generate(args);
        aList = (MyList<A>)generatorOutput[0];
        bList = (MyList<B>)generatorOutput[1];
        [...]

Тем не менее Visual Studio говорит мне, что bList неверен:

Cannot use local variable 'bList' before it is declared.
The declaration of the local variable hides the Field 'MyNameSpace.MyClass.bList'.

Я не очень понимаю, что означает Visual Studio. Я не хочу, чтобы bList был локальным, и он не должен скрывать что-либо.

Если это поможет: bList изначально назывался cList и был MyList<C>, прежде чем я решил, что MyList<B> было более чем достаточно. Сообщение об ошибке появляется только после переименования переменной и изменения ее типа. Кстати, generatorOutput всегда приводится к правильному типу.

Итак, это ошибка, или я упускаю что-то очевидное? Я уже пытался скомпилировать код, переписать строку и даже перезапустить Visual Studio безуспешно ...

1 Ответ

6 голосов
/ 30 января 2012

Я полагаю, что ваша MyMethod продолжается так:

public void MyMethod()
{
    object[] generatorOutput = Generator.Generate(args);
    aList = (MyList<A>)generatorOutput[0];
    bList = (MyList<B>)generatorOutput[1];

    // ...

    var bList = new MyList<B>();  // <---
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...