In ReSharper 2024.1 haben wir die C#-Unterstützung weiter verbessert. Sie erhalten mehr Vorschläge für die Umwandlung in Collection-Ausdrücke, und wenn eine Collection während der Iteration in einer foreach
-Schleife modifiziert wird, werden Sie gewarnt. Die Razor-Unterstützung löst jetzt Referenzen in den Direktiven @addTagHelper
und @removeTagHelper
auf, und die Nutzungserfahrung bei der Bearbeitung benutzerdefinierter Namensregeln wurde erheblich verbessert.
Kostenlose 30-Tage-Testversion verfügbar
Der Umfang der Codekonstrukte, bei denen die IDE eine Umwandlung in Collection-Ausdrücke gemäß C# 12 anbietet, wurde erweitert, unter anderem auf leere Arrays und die Deklaration und Initialisierung von ImmutableArray
.
Wir haben eine neue Inspektion namens Possible 'System.InvalidOperationException: Collection was modified' hinzugefügt, die Sie warnt, wenn eine Collection während der Iteration in foreach
-Schleifen geändert wird, da solche Änderungen zu einer Laufzeitausnahme führen können. Die Analyse erkennt Fälle, in denen die Schleife nach Änderung der Collection verlassen wird, sodass in diesen Fällen keine Warnung ausgelöst wird.
Die Inspektion wird mit einem entsprechenden Quick-Fix geliefert, mit dem Sie dieses Problem sofort lösen können.
Mit Generate | Formatting Members können Sie Standard-Codebausteine generieren, um die Methode ToString()
zu überschreiben und eine sinnvolle Textdarstellung Ihres Typs zurückzugeben. Ab Version 2024.1 unterstützt dieses Feature weitere Typen, darunter ISpanFormattable
, IUtf8SpanFormattable
und IFormattable
.
[MustDisposeResource]
: Die C#-Codeanalyse überprüft jetzt, ob Ressourcen, die von asynchronen Methoden zurückgegeben werden, einschließlich solcher, die in Task<IDisposable>
und ValueTask<IDisposable>
eingeschlossen sind, korrekt entsorgt werden, um zu vermeiden, dass der Task selbst entsorgt wird. .ConfigureAwait(...)
, .AsTask()
oder .Result
abgerufen werden. Wir haben am Refactoring Change Signature unter anderem folgende Verbesserungen vorgenommen:
List<>
die Code-Completion verwenden können, um unkompliziert den gewünschten Typ – etwa int
– auszuwählen. System.Collections.Generic.List<System.Int16>
im Dialog Change Signature angeben, wird er im resultierenden Code automatisch zu List<short>
gekürzt. in
und ref readonly
sowie record
-Typen. In diesem Release unterstützt das Refactoring Make Static Primärkonstruktor-Parameter. Sie erscheinen in der Liste Introduce parameters und werden durch ein eigenes Symbol gekennzeichnet, damit Sie sie leichter unterscheiden können. Dieses Refactoring ist auch für lokale Funktionen verfügbar.
Die Codeanalyse unterstützt jetzt das Attribut ProtoContract
und das Enum ImplicitFields
aus der Bibliothek protobuf-net. Beide können verwendet werden, um Member zu kennzeichnen, die implizit für die Serialisierung verwendet werden. Somit werden solche Member auch nicht mehr mit der Warnung unused member als ungenutzt gekennzeichnet.
@addTagHelper
und @removeTagHelper
ReSharper löst jetzt Assembly-Namen auf, auf die in @addTagHelper
- und @removeTagHelper
-Direktiven innerhalb Ihrer Razor-Views verwiesen wird. Dadurch können Sie die Code-Completion nutzen, nach Verwendungen suchen und einfacher im Code navigieren.
ReSharper betrachtet jetzt alle unaufgelösten Assembly-Namen als Fehler und hebt sie rot hervor, um auf sie aufmerksam zu machen.
Bei der C++-Unterstützung haben wir unter anderem die folgenden wichtigen Verbesserungen vorgenommen:
Erfahren Sie mehr über die C++-Updates: Das ist neu in ReSharper C++ 2024.1.
Wir arbeiten aktiv an der Optimierung von projektmappenweiten Analysen im Modus mit hoher Ressourcennutzung, der die Analysedauer durch eine effizientere parallele CPU-Nutzung erheblich verkürzt. Wir haben die Arbeitsspeicher-Allokation bei Codeanalyse-Aktivitäten verbessert, um den Zeitbedarf der Garbage Collection zu minimieren. Im Zuge der laufenden Optimierung wären wir Ihnen dankbar, wenn Sie diesen Modus aktivieren und uns Ihre Erfahrungen mitteilen könnten.
Sie können jetzt schneller und effizienter Elemente in Ihrem Code umbenennen. Diese Änderung wirkt sich auch auf andere ReSharper-Kernkomponenten aus und verbessert die Performance mehrerer Funktionen, darunter Find Usages.
Die Performance des Refactorings Move to Another Type für statische Member wurde beim Umgang mit großen Klassen erheblich verbessert.
Die Änderungen sollten die Arbeit mit erweiterten Namensregeln und die Einhaltung von aus EditorConfig-Dateien importierten Regeln erleichtern.
Mit dieser neuen Formatierungseinstellung können Sie festlegen, ob Leerzeichen in leeren Zeilen beibehalten oder entfernt werden sollen.
Das Update 2024.1 führt das neue Assembly Diff-Toolfenster in ReSharper ein. Damit gehen einige Änderungen einher:
.zip
-Archive wurde vom Assembly Explorer in das Assembly Diff-Toolfenster verlegt. Der Decompiler von ReSharper unterstützt jetzt das WebCIL-Paketformat für WebAssemblies. Die Unterstützung umfasst:
.wasm
-Dateien im Assembly Explorer. dotTrace, dotMemory und dotCover unterstützen Desktop-MAUI-Anwendungen und .NET-macOS-Anwendungen jetzt auch in Visual Studio.
Unterstützte Zielframeworks:
net8.0-windows
, net7.0-windows
net8.0-maccatalyst
, net7.0-maccatalyst
net8.0-macos
, net7.0-macos
Klicken Sie hier für weitere Informationen über Einschränkungen und die Verfügbarkeit von Profiling-Modi.
Unterstützung für MAUI-Projekte ist auch in den Standalone-Versionen dieser .NET-Tools verfügbar.
Das eigenständige Profiling-Tool dotMemory unterstützt jetzt den Frozen Object Heap – ein Feature, das mit dem .NET 6 SDK im Zuge von Performance-Verbesserungen für die Garbage Collection eingeführt wurde.
FOH weist unveränderlichen Objekten einen speziellen Speicherbereich zu. Diese Objekte werden nach der Allokation nicht geändert und unterliegen nicht der Garbage Collection. Durch die Unterstützung dieser Technologie kann dotMemory eine detailliertere Analyse des von unveränderlichen Objekten genutzten FOH-Speichers durchführen und so die Optimierung der Speichernutzung fördern.
Seit der Version 2024.1 ist das Standardausgabeformat von InspectCode SARIF. Das XML-Format wird bald nicht mehr verwendet. In der aktuellen Version sind die Ergebnisse noch im XML-Format verfügbar, wenn der Parameter -f="xml"
verwendet wird.
Wir haben ein internes Refactoring der Textsteuerelemente abgeschlossen. Dieses Refactoring ist Teil unserer Bemühungen um eine „Out-of-process“-Ausführung von ReSharper und soll die Texteingabe und verwandte Aspekte der Editorperformance sowohl in ReSharper als auch in Rider verbessern. Das neueste Statusupdate über unsere Fortschritte bei der „Out-of-process“-Ausführung von ReSharper finden Sie hier.
Der Plugin-Feed für den JetBrains Marketplace hat einen neuen Filtermechanismus erhalten, der auf Kompatibilitätsprüfungen basiert. Dies bedeutet, dass inkompatible Plugins nicht mehr im Erweiterungsmanager von ReSharper angezeigt werden.
Kostenlose 30-Tage-Testversion verfügbar