2

我想说的是,如果一个对象被定义为接口,然后从类工厂实例化,是否可以在 VS 2008 中右键单击该对象的方法调用并查看真实代码,而不是接口的空签名?

换句话说,我们的代码中有很多这样的内容:

ISomeInterface myObject = ObjectCreationFactory.CreateConcreteClassX();

myObject.DoSomething();

如果我右键单击 DoSomething() 并转到它的定义,我最终会在 ISomeInterface 中看到(空白)方法定义,而不是 ObjectCreationFactory 返回的类的定义。

当然我可以在 CreateConcreteClassX() 中查看源代码并查看正在实例化的类,然后从那里开始,但是如果 VS2008 中有办法告诉它“不要看界面,看在具体实施中。” 可能是我在做梦,但我想我还是会问。谢谢您的帮助。

4

2 回答 2

5

试试插件 Resharper。通过右键单击,您可以直接进入实施。

于 2009-11-06T21:05:28.483 回答
2

CreateConcreteClass() 可以返回任何实现 ISomeInterface 的对象,因此在编译时无法判断接口成员将指向哪个方法。您可以随时跟踪通话并查看结束的位置。

于 2009-11-06T21:02:56.583 回答