Last year marked the first time we shipped ReSharper and Rider side by side with the official .NET SDK release – and we’re happy to announce that we’ve done it again with the 2025.3 release!
With .NET 10 and C# 14, both ReSharper and Rider are ready on day one to help you explore the latest language features. Whether you’re diving into extension members, testing out user-defined compound assignment operators, or cleaning up your code with the new field keyword, ReSharper and Rider have your back with inspections, quick-fixes, and refactorings that just work.
Extension Members
One of the most anticipated features in C# 14 are extension members, which have been discussed for quite a while now. Previously, the concept was limited to extension methods (introduced with C# 3), which enabled us to add instance methods to any type we wanted. For instance, the popular Humanizer project is all about adding extensions to manipulate and display primitive types. Until now, you could be sure that all non-instance methods come from the original type – including properties, static members, and operators – but brace yourself! In the spirit of the original issue, we are about to extension everything in C# 14!
args <<= args.Count + string.ZeroWidthSpace; // 🫣
file static class ExtensionMembers
{
extension<T>(T[] array)
{
public void operator <<= (T item) => array[^1] = item;
public int Count => array.Count;
}
extension(string)
{
public static string ZeroWidthSpace => "\u200b";
}
}
If you’ve been considering advancing your extension library with the use of extension members, now is a good time to do so. ReSharper and Rider 2025.3 come with quick-fixes and context actions to:
- Convert to Extension Block,
- Convert to Classic Extension Methods, and
- Move to Extension Block
As part of our support for extension members, we also updated all our existing features to work smoothly, including the Change Signature, and Convert Method to Property refactoring, and the call tracking and value tracking.
Null-Conditional Assignment
The null-conditional operator has been a great addition in C# 6 to reduce the number of null-checks we have to write in our codebase – whether for member access (?.) or element access (?[]). One limitation has been that expressions that use the operator could only be on the right side of an assignment. With C# 14, this constraint has been lifted, and ReSharper and Rider 2025.3 help you convert relevant fragments to use null propagation:
Field Keyword Updates
The field keyword for properties has been introduced in C# 13 as a preview feature. We added day-zero support in 2025.2 to help you convert from explicit backing fields and modernize your codebase quickly. In C# 14, the field keyword has matured to a fully stable language feature, but some details about the nullability of backing fields have changed. More specifically, the compiler now correctly infers the nullability of backing fields for lazy initializations, which allows us to stop emitting [field: AllowNull, MaybeNull] during conversion in ReSharper and Rider 2025.3:
Partial Constructors & Events
For the release of C# 13, we added support for partial properties and indexers. With C# 14, you can also use partial constructors and events. Just like with extension members, we can partial everything:
// Declaration
partial class WeatherService
{
partial WeatherService();
partial event EventHandler DataReceived;
}
// Implementation
partial class WeatherService
{
partial WeatherService() { }
partial event EventHandler DataReceived
{
add => throw new NotImplementedException();
remove => throw new NotImplementedException();
}
}
While this feature enables more control for source generators, ReSharper and Rider 2025.3 also have you covered in pure user-code scenarios. You can implement partial constructors and events in multiple ways, including:
- Using the Implement member in another part of class quick-fix
- Using the Generate Code action from the Alt+Enter menu
- Using code completion after typing
partial
Just like for partial properties and methods, you can also:
- Manage the visibility from any declaration
- Merge members into one declaration
Simple Lambda Parameters with Modifiers
Support for this language feature was introduced in our 2025.1 release. You can read about it in this blog post here.
Nameof with Unbound Generics
That’s another feature our 2025.1 release introduced support for. More about that here.
Breaking Changes involving Span<T>
Due to the more refined span conversion and type inference rules, you might see compilation errors about ambiguity or incompatible return types. For instance, when targeting net9.0 with the language version 14.0 (which, after all, is an unsupported scenario), an enumerable.Reverse() call now resolves to MemoryExtensions.Reverse(this Span<T>). For this and all similar cases, we’ve added an inspection with an accompanying quick-fix to choose your preferred workaround:
User-Defined Compound Assignment Operators
Implementing operator overloads can be a lot of fun – especially the division operator / for path concatenation! But did you know that when rewriting an assignment like a = a + b as a compound assignment a += b, the new value is not created in the most efficient way? Essentially, the compiler still uses the original + operator overload to create a new value, which then replaces the original value of a. Especially when used with heavy data types, like BigInteger, this can have significant performance implications. C# 14 introduces user-defined compound assignments to solve this issue and allow in-place changes without new allocations:
ReSharper and Rider 2025.3 allow you to spot user-defined operators more easily due to their syntax highlighting, to find usages from declarations, as well as to navigate from usages to the declaration.
And that’s it for now
These updates ensure that your favorite JetBrains tools are ready for everything C# 14 brings — from enhanced extension syntax to new compiler behaviors and smarter refactorings.
For a complete overview of the latest changes and performance improvements, check out the What’s New pages for ReSharper 2025.3 and Rider 2025.3.











