Is there a quick way to find all of the implementations of, not references to, an interface's method/property/etc? Here's some sample code:
public class SomeClass : IBaseClass { public Int32 GetInt() { return 1; } } public interface IBaseClass { public Int32 GetInt(); } public class SomeOtherClass { IBaseClass _someClass; private TestMethod() { _someClass = new SomeClass(); _someClass.GetInt(); } }
I want to quickly get to SomeClass.GetInt() while reviewing SomeOtherClass.TestMethod(). If I right click on _someClass.GetInt() and click 'Go To Definition', it takes me to the interface. If I click 'Find All References', I could potentially see a list of all uses ... not just the classes that implement the GetInt() method.
Is there a faster way to find this? Any tips from other developers? We are using D.I. for most of our dependencies, which means that tracing through deeply nested code takes forever.
Choose Navigate | Go To Implementation in the main menu, press Ctrl+F12 , or click the symbol while holding Ctrl+Alt keys. Note that in Visual Studio 2017 and later, the Ctrl+Alt -click is used for adding multiple carets.
Press Ctrl+F12 or choose Navigate | Implementation(s) from the main menu . Alternatively, you can press Ctrl+Shift+A , start typing the command name in the popup, and then choose it there.
On implementation of an interface, you must override all of its methods. Interface methods are by default abstract and public. Interface attributes are by default public , static and final. An interface cannot contain a constructor (as it cannot be used to create objects)
Since I don't like to use the mouse while coding, I usually
AFAIK this is the quickest way to find the implementation of a method, without ReSharper.
(By the way: you can use the same system to move from a class method implementation to the corresponding interface declaration: just select the root)
Alt-End will do this in ReSharper, I believe.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With