Room 1

10:15 - 11:00 (UTC+10)

Talk (45 min)

Records Deep Dive: What, Why and How

Records were a new feature introduced in C# 9 that allow concise definition of immutable data classes that you may have already seen or even used. In order to support them there were also related new concepts introduced like "primary constructors", "init accessors" and "with expressions", and there are also some traps with records that you should be aware of, like for example I probably shouldn't have referred to them as "immutable data classes".

Programming Languages

Watch live on YouTube

In this session we will dive Records in all of their C# 9 glory, and cover what is coming in C# 10 that is related. We'll cover what they are, how they work under the hood, and most importantly how you can take advantage of the features they bring along to the language even if you can't, or don't want to, move to using them directly.

David Wengier

David is a developer at Microsoft, working on Roslyn, also known as the C#/VB compiler and IDE tools, in Visual Studio.

A developer for the last 20 years, David has had experience in lots of different languages and environments, from cgi-bin scripts in Perl, to genetic algorithms in VB3, and Windows applications in COBOL. A series of terrible decisions, clearly, but he learnt in the end and now spends most of his time developing with .NET in C#, and enabling other developers to do the same.

David is mostly interested in C#, good design and Lego Technic and Creator Expert cars. He can be found tweeting at @davidwengier, streaming at, helping to organize the DDD Melbourne conference, and on about a dozen different slacks and discords.