2

我在 Visual Studio intellisense 的方法存根生成中发现了一个错误。

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

当我选择“生成方法存根”时a.NewMethod(),我应该得到一个公共方法。相反,智能感知会混淆自己并为我创建一个受保护的方法。

编译器正确地抱怨对生成protected void NewMethod()的 in的调用A

有什么方法可以向 Microsoft 报告此问题? 这篇文章说这是一个不可能完成的任务。

4

4 回答 4

6

转到Microsoft Connect站点。至少他们在那里听。当然,您可能需要一段时间才能收到答案(或修复)。

于 2008-10-29T14:15:45.323 回答
3

根据 Microsoft 的预期行为是

“只有通过派生类类型进行访问时,才能在派生类中访问基类的受保护成员。”

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

在您的情况下, a.NewMethod() 会产生错误,因为 A 不是从 B 派生的。这正是您所说的。

因此,“生成方法存根”命令是有缺陷的。

也就是说,使用Microsoft Connect进行错误报告。让我知道错误#是什么,我会在那里投票。

于 2008-10-29T14:27:05.643 回答
1

假设您的错误是错误,请在相关的 microsoft.public 新闻组中发布。他们通常反应灵敏。

于 2008-10-29T14:16:12.857 回答
1

对不起,你是对的。我刚刚用 Resharper 的存根生成器尝试了这个,它创建了一个公共方法。

于 2008-10-29T15:02:16.477 回答