C# 9.0 introduces a new datatype called record
, which is an immutable type that provides value-based equality. Records are ideal for representing data that is primarily for storage and retrieval. In this blog post, we'll explore the features and benefits of records, how to create them, and how they can be used in C# code through code examples.
Features and Benefits
The record
datatype in C# has several features and benefits, including:
Immutability: Records are immutable, which means their values cannot be changed once they're created. This feature ensures records are safer to use because they can't be modified after they're created.
Value-Based Equality: Records provide value-based equality, which means that two records are equal if their values are equal. This feature makes it easy to compare records and determine if they're the same.
Built-In Deconstruction: Records have built-in deconstruction, which allows you to easily extract their values and assign them to variables. This feature makes it easy to work with records and use their values in your code.
Concise Syntax: The syntax for creating records is concise, making it easy to create and use them in your code. This feature saves time when writing code and makes it easier to work with records.
Creating Records
To create a record in C#, you use the record keyword followed by the name of the record and its properties. Here's an example:
public record Person(string FirstName, string LastName, int Age);
In this example, the Person
record has three properties: FirstName
, LastName
, and Age
. These properties are used to store the person's first name, last name, and age.
Using Records
Records can be used in many ways in C# code. Here are some examples:
Creating a list of records:
List<Person> people = new List<Person>()
{
new Person("John", "Doe", 30),
new Person("Jane", "Doe", 25)
};
In this example, we've created a list of Person records and added two records to the list. We've also specified the values for each property when we created the records.
Using records as function return types:
public record Person(string FirstName, string LastName, int Age);
public Person GetPerson()
{
return new Person("John", "Doe", 30);
}
var person = GetPerson();
In this example, we've created a function that returns a Person record. We've then assigned the returned record to a variable, which can be used later in the code.
Deconstructing records:
var person = new Person("John", "Doe", 30);
var (firstName, lastName, age) = person;
In this example, we've created a Person record and then deconstructed it to extract its values. The values are then assigned to variables, which can be used later in the code.
Conclusion
In conclusion, the new record datatype in C# 9.0 is a powerful tool that can be used to store and retrieve data in a safe and efficient way. Its features, such as immutability, value-based equality, built-in deconstruction, and concise syntax, make it easy to use and save time when writing code. Records can help streamline code and improve its readability and maintainability. Whether you're working on a small project or a large-scale application, records can be a useful addition to your C# toolbox.
Top comments (1)
Hey, this article seems like it may have been generated with the assistance of ChatGPT.
We allow our community members to use AI assistance when writing articles as long as they abide by our guidelines. Could you review the guidelines and edit your post to add a disclaimer?
Guidelines for AI-assisted Articles on DEV
Erin Bensinger for The DEV Team γ» Dec 19 '22 γ» 4 min read
Some comments have been hidden by the post's author - find out more