Hi,

ich nutze grade verstärkt Interfaces, die auch zur Übergabe an andere Klassen genutzt werden, statt der Klasse mit der konkreten Implementierung. Mit Visual Studio kann man auf den Datentyp eines Parameters klicken, und gelangt zur Definition der Klasse, wenn F12 gedrückt wird. Das empfinde ich als sehr nützlich und spart viel Zeit, wenn ich an der Klasse etwas ändern möchte. Da ich aber nun ein Interface verwende, funktioniert das ganze nicht mehr: Mit F12 gelange ich zur Definition der Methode im Interface, aber nicht zur konkreten Implementierung.

Ein Beispiel:

public interface ITest {
void Foo();
}
public class Test : ITest {
public void Foo() {

}
}

public class ImplementionTest{
public ImplementionTest(ITest test) {

}
}

Im Konstruktor der Klasse "ImplementionTest" klicke ich auf "Foo" und drücke F12. Jetzt lande ich bei der Definition im Interface. Ich möchte aber bei der Definition der Implementierung landen, also in dem Fall der Foo-Methode in der Klasse "Test". Ist dies irgendwie möglich?

Mir ist klar, dass Visual Studio nicht hellsehen kann, welche Implementierung ich möchte, wenn es mehrere gibt. Das ist bei mir aber meistens nicht der Fall. Ich habe nur eine Klasse und halte mich an die Coding Conventions von C#, soll heißen: Das Interface heißt gleich wie die Klasse mit der Implementierung, nur mit einem großen I davor. Im obigen Beispiel beim Interface "ITest" müsste Visual Studio also nach einer Klasse namens "Test" suchen.