.NET Blog

Free. Cross-platform. Open source. A developer platform for building all your apps.

Hardware Intrinsics in .NET Core

Several years ago, we decided that it was time to support SIMD code in .NET. We introduced the System.Numerics namespace with , , , , and related types. These types expose a general-purpose API for creating, accessing, and operating on them using hardware vector instructions (when available). They also provide a software fallback for when...

Default implementations in interfaces

Default implementations in interfaces With last week's posts Announcing .NET Core 3.0 Preview 5 and Visual Studio 2019 version 16.1 Preview 3, the last major feature of C# 8.0 is now available in preview. A big impediment to software evolution has been the fact that you couldn't add new members to a public interface. You would break ...

An update to C# versions and C# tooling

Starting with Visual Studio 2019 Preview 4, we'll be adjusting how C# versions are treated in .NET tooling. Firstly, we're adding two new Language Version (LangVersion) values: LatestMajor and Preview. Rad the post to see how they stack up with the currently supported list of values.

Do more with patterns in C# 8.0

Do more with patterns in C# 8.0 Visual Studio 2019 Preview 2 is out! And with it, a couple more C# 8.0 features are ready for you to try. It's mostly about pattern matching, though I'll touch on a few other news and changes at the end. More patterns in more places When C# 7.0 introduced pattern matching we said that we expected to add more ...

Take C# 8.0 for a spin

Take C# 8.0 for a spin Yesterday we announced the first preview of both Visual Studio 2019 (Making every developer more productive with Visual Studio 2019) and .NET Core 3.0 (Announcing .NET Core 3 Preview 1 and Open Sourcing Windows Desktop Frameworks). One of the exciting aspects of that is that you get to play with some of the features ...

Introducing Nullable Reference Types in C#

Today we released a prototype of a C# feature called "nullable reference types", which is intended to help you find and fix most of your null-related bugs before they blow up at runtime. We would love for you to install the prototype and try it out on your code! (Or maybe a copy of it! 😄) Your feedback is going to help us get the feature ...

Welcome to C# 7.2 and Span

C# 7.2 is the latest point release of C#, and adds a number of small but useful features. All the features are described in wonderful detail in the docs. Start with the overview, What's new in C# 7.2, which gives you an excellent introduction to the new set of capabilities. It is worth celebrating that a significant portion of the docs are ...

Welcome to C# 7.1

With C# we have always tended towards major releases: bundle a lot of features up, and release less frequently. We even went so far as routinely omitting the traditional ".0" when we talked about C# 6.0! In the C# 7.0 "wave" we are trying something new. Tools such as Visual Studio upgrade on a frequent cadence, and there's no longer a ...

The .NET Language Strategy

The .NET Language Strategy I am constantly aware of the enormous impact our language investments have on so many people's daily lives. Our languages are a huge strength of the .NET platform, and a primary factor in people choosing to bet on it - and stay on it. I've been here on the .NET languages team at Microsoft for more than a decade, and...