Records in C#

Ab .NET 5 kann man in C# Records verwenden. Records verhalten sich in Teilen wie Klassen, jedoch sind sie unveränderbar. Ich verlinke hier mal ein Video für den Einstieg mit Records: https://www.youtube.com/watch?v=9Byvwa9yF-I

Aber was macht Records dann so attraktiv und für was kann man sie einsetzten? Attraktiv werden sie durch die verdammt kurz Schreibweise.
Und wofür kann man sie verwenden? Ziemlich gut als DTOs oder auch für Objekte in Auswahllisten

Ein einfaches Beispiel: Eine Auswahl in der Combobox mit ID, Text und einem weitere Element.

public class RecordSample
{
	ComboBox cbxShops = new ComboBox();
 
	private record ShopAuswahl(int Id, string Name, string BaseUrl);
	public RecordSample()
	{
		List<ShopAuswahl> shops = new();
		shops.Add(new (1, "Amazon", "www.amazon.de"));
		shops.Add(new (2, "Nuclear Blast", "www.nuclearblast.de"));
		shops.Add(new (3, "Saturn", "www.saturn.de"));
		cbxShops.DataSource = shops;
		cbxShops.DisplayMember = "Name";
	}
}

Schon hat man eine gefüllte ComboBox und man hat ein Objekt, mit dem man weiter arbeiten kann, falls man z.B. die URL automatisch öffnen möchte.

Was ich auch gerne mache: Wenn sich eine ListView aus einer Liste von Objekten aufbaut, dann hinterlege ich die Referenz auf das Objekt im ListViewItem.Tag Property. Auch hierfür eigenen sich Records hervorragend. Sozusagen als ViewModel für die ListView.

Was hat man da vorher gemacht? Eigene Klassen dafür geschrieben oder mit Listen von Tuples gearbeitet. Da muss ich sagen, finde ich Records schon viel angenehmer. Gerade wenn es wirklich um einfache Datenobjekte geht, die sich nicht verändert werden. Ein weiteres Beispiel hierfür wären zum Beispiel auch Request Objekte bei einem Webservice Aufruf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.