Ошибка в intellisense - как сообщить в Microsoft? - PullRequest
2 голосов
/ 29 октября 2008

Я обнаружил ошибку в генерации заглушек метода в Visual Studio intellisense.

class A { }
class B : A
{
    A a;
    void f() { a.NewMethod(); }
}

Когда я выбираю «Создать заглушку метода» на a.NewMethod(), я должен получить публичный метод. Вместо этого intellisense смущает себя и создает для меня защищенный метод.

Компилятор правильно жалуется на вызов сгенерированного protected void NewMethod() в A.

Есть ли способ сообщить об этом в Microsoft? В этом посте говорится, что Миссия невыполнима.

Ответы [ 4 ]

6 голосов
/ 29 октября 2008

Перейдите на сайт Microsoft Connect . По крайней мере, они там слушают. Конечно, это может занять некоторое время, пока вы не получите ответ (или исправление).

3 голосов
/ 29 октября 2008

В Microsoft ожидаемое поведение составляет

"Защищенный член базового класса доступен в производном классе только , если доступ осуществляется через тип производного класса."

http://msdn.microsoft.com/en-us/library/bcd5672a(VS.71).aspx

В вашем случае a.NewMethod () генерирует ошибку, потому что A не является производным от B. Это именно то, о чем вы говорите.

Следовательно, команда «Сгенерировать заглушку метода» некорректна.

Тем не менее, используйте Microsoft Connect для сообщения об ошибках. Дайте мне знать, что это за ошибка #, и я проголосую там.

1 голос
/ 29 октября 2008

Извините, вы были правы. Я только что попробовал это с генератором заглушки Решарпера, и он создал открытый метод.

1 голос
/ 29 октября 2008

Предполагая, что ваша ошибка - ошибка, опубликуйте ее в соответствующей группе новостей microsoft.public. Они обычно довольно отзывчивы.

...