Я обнаружил ошибку в генерации заглушки метода Visual Studio intellisense.
class A { }
class B : A
{
A a;
void f() { a.NewMethod(); }
}
Когда я выбираю «Создать заглушку метода» на a.NewMethod(), я должен получить общедоступный метод. Вместо этого intellisense сбивает себя с толку и создает для меня защищенный метод.
Компилятор правильно жалуется на вызов сгенерированного protected void NewMethod() в A.
Есть ли способ сообщить об этом в Microsoft? Эта почта говорит, что это миссия невыполнима.





Зайдите на сайт Microsoft Connect. По крайней мере, они там слушают. Конечно, может пройти некоторое время, прежде чем вы получите ответ (или исправление).
Предполагая, что ваша ошибка является ошибкой, опубликуйте сообщение в соответствующей группе новостей microsoft.public. Обычно они довольно отзывчивы.
Ожидаемое поведение Microsoft
«Защищенный член базового класса доступен в производном классе Только, если доступ осуществляется через тип производного класса».
http://msdn.microsoft.com/en-us/library/bcd5672a(VS.71).aspx
В вашем случае a.NewMethod () генерирует ошибку, потому что A не является производным от B. Это именно то, о чем вы говорите.
Следовательно, команда «Создать заглушку метода» некорректна.
Тем не менее, используйте Microsoft Connect для сообщений об ошибках. Сообщите мне, в чем ошибка #, и я проголосую за нее.
Простите, вы были правы. Я просто попробовал это с помощью генератора заглушек Resharper, и он создал общедоступный метод.