Kontextaktionen

Die Kontextaktionen von ReSharper ersparen Ihnen bei kleinen Codeänderungen viel Tipparbeit. Ändern Sie Zugriffsmodifizierer, generieren Sie Nullprüfungen, konvertieren Sie foreach zu for und zurück – all dies mit nur ein paar Tastenkombinationen. Es stehen über 450 Kontextaktionen für C#, VB.NET, XAML, ASP.NET und andere unterstützte Sprachen zur Verfügung. Drücken Sie Alt+Enter über dem Codeelement, das Sie ändern wollen, und wählen Sie die anzuwendende Kontextaktion aus.

Kontextaktionen von ReSharper

Kontextaktionen anwenden

Sobald eine Kontextaktion für die aktuelle Textcursorposition verfügbar wird, zeigt ReSharper links vom Textcursor das Hammersymbol ReSharper's context action indicator an. Bei mehreren verfügbaren kontextbezogenen Funktionen – das können Kontextaktionen oder Quick-Fixes sein – wird das Symbol der Aktion mit der höchsten Priorität angezeigt. Klicken Sie auf den Aktionsindikator oder drücken Sie Alt+Enter, um sich alle verfügbaren Aktionen anzusehen.

Ähnliche Kontextaktionen (zum Beispiel Aktionen für verschiedene Zugriffsmodifizierer) werden häufig gruppiert. Erweitern Sie in diesem Fall die Gruppe mithilfe des rechten Pfeils, um die gewünschte Aktion zu wählen.

Kontextaktionen auf größere Bereiche anwenden (Datei, Projekt oder Lösung)

Kontextaktionen auf größere Bereiche anwenden

Einige Kontextaktionen (Remove #regions, Specify enum member values, Add name to argument etc.) können automatisch auf einen größeren Bereich angewendet werden: auf die aktuelle Methode, Klasse oder Datei, auf das Projekt oder auf die ganze Lösung. Sie können rechts auf einen kleinen Pfeil klicken oder die rechte Pfeiltaste auf der Tastatur drücken, um auszuwählen, wo die Transformation angewendet werden soll.

Quick-Fixes und Kontextaktionen

Kontextaktionen und Quick-Fixes

ReSharper bietet außerdem Quick-Fixes an, die in der Dropdown-Liste zusammen mit Kontextaktionen angezeigt werden. Der Unterschied zwischen den beiden Funktionen ist einfach: Quick-Fixes erscheinen nur für hervorgehobene Codeprobleme und zielen darauf ab, diese zu beheben und hoffentlich Ihren Code zu verbessern, während Kontextaktionen Mini-Refaktorierungen darstellen, die einfach nur den Code verändern.

Es ist wichtig zu beachten, dass Quick-Fixes eine höhere Priorität haben. Wenn also Quick-Fixes an Ihrem Textcursor erscheinen, dann müssen Sie Alt+Enter drücken, um eventuelle Kontextaktionen zu sehen.

Einfügen einer Null-Überprüfung in C# mit einer Kontextaktion

C#: Parameter auf Nullwert prüfen Beispiel

Mit ReSharper können Sie Parameter ganz ohne Tipparbeit auf Null überprüfen – drücken Sie einfach Alt+Enter und ReSharper erstellt für Sie die gesamte Routine für die Nullprüfung.

Wenn Sie die Code-Annotations von JetBrains in Ihrem Projekt verwenden, dann wird der Parameter mit dem Attribut [NotNull] markiert, so dass ReSharper Sie bei einem Aufruf der Methode mit Null als Parameter warnt.

LINQ mit ReSharper-Kontextaktionen zu Code konvertieren

C#: LINQ zu Code konvertieren Beispiel

In diesem Beispiel können Sie sehen, wie Sie mit einer ReSharper-Kontextaktion eine LINQ-Abfrage zu einer foreach-Schleife und einem Lambda-Ausdruck konvertieren können.

Dies ist das Gegenstück zum berühmten Quick-Fix von ReSharper, der Schleifen zu LINQ-Anweisungen konvertiert.

Iterator mit ReSharper-Kontextaktion zu Collection konvertieren

C#: Iterator zu Collection konvertieren Beispiel

Einige Kontextaktionen ähneln eher Refaktorierungen – sie automatisieren komplexe Codetransformationen, während die Logik erhalten bleibt.

In diesem Beispiel hilft ReSharper Ihnen beim Transformieren eines Iterators mit yield return-Anweisungen zu Code, der eine Collection erstellt, auffüllt und zurückgibt.

Deklaration und Zuweisung mit ReSharper-Kontextaktion aufteilen

C#: Deklaration und Zuweisung aufteilen Beispiel

Wenn Sie eine Bedingung zu der Initialisierung einer bestehenden lokalen Variable hinzufügen müssen, dann hilft Ihnen diese Kontextaktion, die Initialisierung schnell abzutrennen. Selbst wenn die Variable implizit typisiert ist, ermittelt ReSharper automatisch den korrekten Typ und verwendet ihn in der Deklaration.

Einen „if“-Ausdruck mit ReSharper-Kontextaktion umkehren

C#: „if“-Ausdruck umkehren Beispiel

Mit dieser Kontextaktion können Sie schnell die Branches einer if-Anweisung vertauschen. ReSharper stellt sicher, dass die Bedingung, egal wie komplex sie ist, korrekt negiert wird, so dass die Logik unverändert bleibt.

ReSharper-Kontextaktion: Anonyme Methode zu Lambda-Ausdruck konvertieren und umgekehrt

C#: Anonyme Methode zu Lambda-Ausdruck konvertieren (und umgekehrt) Beispiel

Egal welche Syntax für einen Delegate (anonyme Methode oder Lambda-Ausdruck) angewendet wird, können Sie mit den Kontextaktionen von ReSharper die Syntax per Tastenkombination ändern, ohne den Code von Hand umzuschreiben.

Mit einer Kontextaktion eine Überladung in VB.NET erstellen

VB.NET: Überladung ohne Parameter erstellen Beispiel

Mit dieser Kontextaktion erstellen Sie eine Methodenüberladung, die einen Standardwert für den ausgewählten Parameter verwendet. Und all das wieder einmal ohne irgendetwas einzutippen.

Diese Aktion ist auch in C# und TypeScript verfügbar.

ReSharper-Kontextaktionen in XML-ähnlichem Code

Kontextaktionen in XML-ähnlichem Code Beispiel

In XML-like languages, ReSharper's context actions help you streamline routine editing procedures of expanding/collapsing empty tags, and converting attributes to tags and back. Diese Aktionen sind in XML-, XAML-, ASP.NET-, Buildskript-, HTML- und Resx-Dateien verfügbar.

Einstellungen für Kontextaktionen

Kontextaktionen konfigurieren

If you don't want ReSharper to show a particular context action in the context menu, you can disable it in the ReSharper Options dialog.