Visual Studio 2015 Intellisense добавляет ненужные префиксы пространства имен, а затем говорит, что они не нужны - PullRequest
0 голосов
/ 16 октября 2018

Visual Studio 2015 Intellisense часто, но непоследовательно, вводит префиксы пространств имен в мой код только для того, чтобы (правильно) сказать, что они не нужны и должны быть удалены.

Это происходит только когда я нажимаю '('ключ, пока открыто всплывающее окно Intellisense. Если я нажимаю любую другую клавишу, имя класса вводится правильно, без пространства имен.

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

Пример проблемы:

namespace One.Two.Three.Something
{
    public class TheVeryUniquelyNamedCollectionClass { }
    public class TheBase { }
    public class TheClass : TheBase
    {
        public TheVeryUniquelyNamedCollectionClass Abcd { get; }

        public TheClass()
        {
            Abcd = new Something.TheVeryUniquelyNamedCollectionClass();   
        }
    }
}

В приведенном выше случаеVisual Studio вставляет «Something.» В строку «Abcd = new Something.TheVeryUniquelyNamedCollectionClass ();», а затем сразу говорит, что это не нужно и должно быть удалено.

Это происходит в нескольких проектах и ​​решениях,и это очень расстраивает необходимость бороться с Intellisense.

Примечание: Intellisense теперь отказывается демонстрировать это поведение клавишей '(' в примере выше.Ничего в примере кода не изменилось.Он просто «осознал», что пространство имен не нужно, и теперь отказывается вводить его независимо от того, что я делаю.

Примечание 2: Я подтвердил, что Intellisense в конце концов обнаружит, что пространство имен не нужно.Я перешел к другой строке кода, демонстрирующей эту проблему, и после повторного ввода ее 5 раз Intellisense теперь ведет себя правильно каждый раз.Ничто иное не изменилось, кроме повторного набора линии несколько раз.

...