ReSharper 2021.2 bietet neue Inspektionen und Quick-Fixes für die C#-Codeanalyse, unterstützt nullfähige Verweistypen und stellt viele Funktionen nicht nur für manuell geschriebene Codedateien, sondern auch für generierte Dateien zur Verfügung. Außerdem unterstützt ReSharper 2021.2 Einzeldatei-Anwendungen im Assembly Explorer, verbessert die Problembehandlung bei der dynamischen Programmanalyse und bietet erweiterte Namensregeln für Records, Erweiterungsmethoden und Catch-Variablen.
Kostenlose 30-Tage-Testversion verfügbar
Verwenden Sie temporäre Variablen, um Variablenwerte zu vertauschen? Es gibt jetzt eine elegantere Möglichkeit! ReSharper 2021.2 hilft Ihnen mit dem neuen Quick-Fix Swap via deconstruction, Ihren Code zu modernisieren.
Reduzieren Sie die Anzahl der Zuordnungen in Ihrem Code und erhöhen Sie die Geschwindigkeit! Ersetzen Sie das Anlegen von leeren Arrays durch Array.Empty<T>
.
Wenn Sie einen neuen Type[0]
allozieren, schlägt ReSharper die Verwendung von Type.EmptyTypes
vor, um eine effizientere Speichernutzung zu ermöglichen.
Wenn keine speziellen EventArgs
benötigt werden, weist ReSharper Sie darauf hin, dass Sie new EventArgs()
durch EventArgs.Empty
ersetzen können.
Andere Verbesserungen:
generated_code
in .editorconfig
, um Dateien oder Ordner als generierten Code zu markieren und von der Verarbeitung auszuschließen. switch
-Anweisungen und switch
-Ausdrücken. Mussten Sie nach der Aktivierung von nullfähigen Verweistypen an zahlreichen Stellen in Ihrem Code Nullability-Warnungen unterdrücken?
ReSharper weist Sie darauf hin, wenn eine Unterdrückung (!
) nicht mehr benötigt wird und gefahrlos entfernt werden kann.
Mit einer neuen Kontextaktion können Sie alle unterdrückten Nullability-Warnungen im Gültigkeitsbereich finden. Mithilfe des Find Results-Toolfensters können Sie dann überprüfen, ob die Unterdrückungen noch benötigt werden.
Wir haben ein neues Refactoring eingeführt, mit dem die Nullfähigkeit geändert werden kann! Es ist über verschiedene Wege zugänglich: über einen Quick-Fix, über die Aktion Refactor This sowie durch ein In-Place-Refactoring beim Hinzufügen oder Entfernen der Nullability-Annotation (?
).
ReSharper aktualisiert die Nullability-Annotationen und schlägt vor, die Änderungen in Ihren gesamten Codebestand zu übernehmen.
Wenn Sie JetBrains.Annotations-Attribute verwenden und nullfähige Verweistypen aktiviert haben, stehen Ihnen mehrere neue Inspektionen mit entsprechenden Quick-Fixes zur Verfügung.
Aktualisieren Sie JetBrains.Annotations-Attribute auf die NRT-Syntax und auf Attribute, die vom Compiler unterstützt werden! ReSharper kann beispielsweise [CanBeNull] string
zu string?
ändern.
ReSharper informiert Sie über redundante JetBrains.Annotations-Attribute wie [NotNull] string
oder [ItemCanBeNull] List
. Und natürlich gibt es einen Quick-Fix, mit dem Sie Ihren Code aktualisieren können.
Wenn die Typ-Annotationssyntax nicht erlaubt ist, kann eine neue Inspektion mit dazugehörigem Quick-Fix vom Compiler unterstützte Annotationen hinzufügen. Zum Beispiel:
[JetBrains.Annotations.NotNull] T param
zu [DisallowNull] T param
(where T: class?
) [JetBrains.Annotations.CanBeNull] T
zu [System.Diagnostics.MaybeNull] T
(in C# 8, wo die Syntax T?
nicht zulässig ist) Mit neuen Inspektionen und Quick-Fixes unterstützt Sie ReSharper dabei, vom Compiler unterstützte Annotationen wie [DisallowNull]
, [AllowNull]
, [MaybeNull]
und [NotNull]
zu verwenden.
Eine neue Inspektion erkennt redundante Compiler-Annotationen, etwa die Verwendung von [AllowNull]
mit einem nullfähigen Typ. Mit dem dazugehörigen Quick-Fix können Sie die Annotation entfernen.
Wenn die Syntax für nullfähige Verweistypen verwendet werden kann, schlägt ReSharper dies vor.
Es gibt noch weitere Verbesserungen, die nicht unerwähnt bleiben sollten:
Mehr dazu erfahren Sie in diesem Blogbeitrag: Das ist neu für nullfähige C#-Verweistypen in ReSharper und Rider 2021.2.
Quellcodegeneratoren können verwendet werden, um mühsame und wiederholungsintensive Entwicklungstätigkeiten zu reduzieren und um Code zur Kompilierungszeit zu generieren. In ReSharper 2021.2 können viele der Funktionen, die für manuell geschriebene Codedateien konzipiert wurden, auch für generierte Dateien verwendet werden. Wir haben die Editor-Unterstützung verbessert, den Debugger ausgebaut, eine projektmappenweite Analyse (solution-wide error analysis, SWEA) eingeführt und Refactorings hinzugefügt.
Bei generiertem Code werden Warnungen und Fehler im Editor und in der Markierungsleiste angezeigt.
Die projektmappenweite Fehleranalyse (SWEA) umfasst jetzt Dateien, die von Quellcodegeneratoren erzeugt wurden. Wenn in einer generierten Datei in Ihrem Projekt ein Fehler vorliegt, können Sie ihn sofort erkennen und dorthin navigieren.
Sie können dieses Verhalten mit der neuen Option zum Einschließen von generierten Dateien umschalten. Die Option ist standardmäßig aktiviert und befindet sich unter ReSharper | Options | Code Inspection | Settings | Enable solution-wide analysis.
Refactorings können jetzt in generierten Dateien angewendet werden. Verwenden Sie das Rename-Refactoring, um eine generierte Eigenschaft umzubenennen. ReSharper benennt das zugehörige Symbol auch in manuell geschriebenem Code um!
Beim Refactoring Change Signature wiederum können Sie überprüfen, ob der Code, der nach der Änderung generiert wird, noch kompiliert werden kann.
Außerdem haben Sie die Möglichkeit, Find Usages zu verwenden, nach erbenden Elementen zu suchen, von generiertem Code zu manuell geschriebenem Code zu navigieren (mit Strg+Klick und Navigate To) und noch einiges mehr.
Die semantische Hervorhebung ist aktiviert, sodass Klassenmember wie Ereignisse, Felder und Eigenschaften korrekt eingefärbt werden. Alle Inlay-Hinweise werden ebenfalls angezeigt.
Die ReSharper-eigenen Data-Tips werden beim Debuggen angezeigt. Dies ermöglicht eine erweiterte Debugging-Unterstützung mit Suchfunktion, Hervorhebung von Eigenschaften und mehr.
ReSharper unterstützt jetzt von Quellcodegeneratoren erzeugten Code in VB.NET.
In der vorherigen Version haben wir die Unterstützung für ASP.NET-Routenvorlagen implementiert. Version v2021.2 wurde in dieser Richtung weiterentwickelt und bietet eine bessere Unterstützung für URI-Zeichenfolgen im HttpClient
:
HttpClient
schlägt die Code-Completion alle URIs vor, die zu Aktionen in Controllern aufgelöst werden können, die mit den Attributen [Route]
, [Http{Methode}]
oder [AcceptVerbs]
annotiert sind. Wir haben nützliche neue Navigationsfunktionen hinzugefügt:
Manchmal kann es nützlich sein, erweiterte Namensregeln für Records, Erweiterungsmethoden und Catch-Variablen anzugeben. Ab dieser Version haben Sie die Möglichkeit, solche Regeln zu konfigurieren.
Wenn Sie den Pico-Klammer- und Einrückungsstil bevorzugen, sind Sie bei uns richtig. Der Pico-Stil wurde als Option auf dem Tab Brace Layout unter ReSharper | Options | Code Editing | C# | Formatting Style | Braces Layout hinzugefügt.
Wir haben die Standard-Formatierungseinstellungen in einigen Fällen geändert, um sie an die Visual-Studio-Standardeinstellungen anzupassen.
Mit dem neuen Refactoring Inline Function können Sie einen Funktionsaufruf schnell durch den Funktionskörper ersetzen. ReSharper C++ führt die erforderlichen Änderungen durch, kümmert sich um alle Namenskonflikte und formatiert den entstandenen Code neu.
ReSharper C++ 2021.2 bietet Inlay-Hinweise für implizite Typumwandlungen, die unbemerkt zu Datenverlust oder Leistungsproblemen führen können. ReSharper C++ zeigt jetzt die Stellen in Ihrem Code an, an denen implizite Umwandlungen stattfinden.
DPA speichert jetzt zwei Werte für jedes Problem – den Höchstwert und den aktuellen Wert. Dies verhindert falsche Negativergebnisse. Bisher konnte es passieren, dass Probleme unter den Schwellenwert fielen und aus der Problemliste verschwanden, und zwar nicht, weil sie behoben wurden, sondern weil sich ihre Startbedingungen geändert hatten (das Programm lief kürzer, die erforderliche Funktionalität wurde nicht ausgeführt usw.).
The embedded decompiler can now decompile single-file apps. Es werden die Einzeldateiformate der SDKs .NET Core 3.1, .NET 5 und des künftigen .NET 6 unterstützt. Im Assembly-Explorer können Sie die in einer Einzeldatei-App integrierten Assemblies in der gewohnten Weise durchsuchen.
In dieser Version haben wir die Möglichkeiten zur Analyse der Speicherallokationen weiter verbessert. In der Ansicht Memory Allocation wurden zwei neue Tabs hinzugefügt:
Wenn Sie bei der Razor-Entwicklung an großen Views arbeiten, die Ihren Editor ins Stocken bringen, können Sie die CPU-intensiven Unterstützungen und die automatischen Vorschläge deaktivieren. Die Einstellungen finden Sie hier: ReSharper | Options | Environment | Editor | Behavior | Razor | Allow CPU-intensive typing assist.
Wir haben eine grundlegende Änderung („Breaking Change“) im InspectCode-Tool vorgenommen. Ab v2021.2 stellt InspectCode NuGet-Pakete automatisch wieder her und erstellt einen Build der Projektmappe, bevor es mit der Analyse beginnt. Wenn dieses Verhalten unerwünscht ist, können Sie mit dem Parameter --no-build
das Wiederherstellen von NuGet-Paketen und das Erstellen eines Projektmappen-Builds deaktivieren.
Kostenlose 30-Tage-Testversion verfügbar