Künstliche Intelligenz
Neu in .NET 10.0 [8]: Neuerungen für partielle Klassen in C# 14.0
C# kennt seit Version 2.0 partielle Klassen und seit Version 3.0 partielle Methoden. Im Jahr 2024 kamen in C# 13.0 partielle Properties und Indexer hinzu.
Weiterlesen nach der Anzeige
Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
In C# 14.0 können Entwicklerinnen und Entwickler das Schlüsselwort partial auch auf Konstruktoren und Events in C#-Klassen anwenden.
Folgender Code zeigt Teil 1 der Klasse:
public partial class Person
{
public partial int ID { get; set; } // Partial Property
public partial string Name { get; set; } // Partial Property
public partial void Print(); // Partial Method
public partial Person(int id); // NEU: Partial Constructor
public static partial event Action PersonCreated; // NEU: Partial Event
}
Teil 2 der Klasse findet sich in folgendem Code:
// Teil 2 der Klasse
public partial class Person
{
private int _ID;
public partial int ID
{
get { return _ID; }
set { _ID = value; }
}
private string _Name = "";
public partial string Name
{
get { return _Name; }
set { _Name = value; }
}
// NEU: Partial Constructor
public partial Person(int id)
{
this.ID = id;
Person._PersonCreated?.Invoke(this.ID, this.Name);
}
public partial void Print()
{
Console.WriteLine($"Person-ID: {this.ID} Name: {this.Name}");
}
private static Action _PersonCreated;
// NEU: Partial Event: Implementierung des Partial Events muss add- und remove-Block besitzen
public static partial event Action PersonCreated
{
add
{
Console.WriteLine("Handler für PersonCreated hinzugefügt.");
_PersonCreated += value;
}
remove
{
Console.WriteLine("Handler für PersonCreated entfernt.");
_PersonCreated -= value;
}
}
}
(rme)