Earlier quoted context omitted.
Are there others? Edit: include ;-) at the end. Client filtered it out...
Yes. There are three "official" .NET languages: C#, Visual Basic, and F#. https://dotnet.microsoft.com/en-us/languages
.NET 9 Is Out
11–20 of 40 posts
Re: .NET 9 Is Out
#12They didn't add anything significant to the language this year. Maybe next year we will get new extensions feature.
https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...
Re: .NET 9 Is Out
#13Re: .NET 9 Is Out
#14https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/ Large performance improvements.
And then spice up the concurrency and measure memory consumption as well, a 24h test.
Re: .NET 9 Is Out
#15Re: .NET 9 Is Out
#16https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/ Large performance improvements.
Re: .NET 9 Is Out
#17Re: .NET 9 Is Out
#18https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/ Large performance improvements.
Stephen Toub does an impressive performance deep dive blog post [0] every release. It's over 300 pages long! [0] - https://devblogs.microsoft.com/dotnet/performance-improvemen...
Re: .NET 9 Is Out
#19Earlier quoted context omitted.
Are there others? Edit: include ;-) at the end. Client filtered it out...
Yes. There are three "official" .NET languages: C#, Visual Basic, and F#. https://dotnet.microsoft.com/en-us/languages
Re: .NET 9 Is Out
#20They didn't add anything significant to the language this year. Maybe next year we will get new extensions feature.
The most obvious way to store backing fields for arbitrary objects is to have a global concurrent dictionary that stores weak keys, and a compiler-generated class to store the backing fields as the value. But then you have a performance problem of needing to do a lookup from a weak-concurrent-dictionary every time you access any extension backing field.
The higher-performance alternative would be a second shadow variable in code that uses the extension backing fields. Do your dictionary lookup, then cache the backing-fields-object so you don't need to redo lookups for it. But that would be function-local.
If the extension property doesn't need a new backing field, it's trivial, you're just making a new getter and setter function pair.