Visual Studio Bug?

本文关键字:Bug Studio Visual | 更新日期: 2023-09-27 18:21:58

我遇到了一些奇怪的事情,我不确定这是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总是被转换成正确的类型。

那么,这是一个bug,还是我遗漏了一些明显的东西?我已经尝试过编译代码、重写行,甚至重新启动Visual Studio,但都没有成功。。。

Visual Studio Bug?

我假设您的MyMethod继续如下:

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