C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft entwickelt wurde. Sie wurde erstmals 2002 als Teil des .NET-Frameworks eingeführt. C# ist eine einfache, leistungsstarke und typsichere Programmiersprache, die verwendet wird, um Desktop-, Web-, Spiele- und mobile Anwendungen zu erstellen. Sie unterstützt sowohl statische als auch dynamische Typisierung und ist äusserst vielseitig und kontinuierlich in der Weiterentwicklung. Daher sollte ein .NET/C#-Entwickler immer auf dem neuesten Stand der Änderungen bleiben.
Hier ist eine Liste der ersten 10 besten C# Features, die Sie kennen sollten:
1. Generics
Eingeführt in C# 2.0. Ermöglicht die Erstellung typsicherer Datenstrukturen in C#. Bietet generische Sammlungsklassen im Namespace System.Collections.Generic.
Beispiel:
”’
List<int> numbers = new List<int>();
numbers.Add(1); // Strictly for integers
”’
2. Partielle Klassen
Eingeführt in C# 2.0. Erlaubt die Aufteilung einer Klassendefinition auf mehrere Dateiern mithilfe des Schlüsselworts partial.
Beispiel:
”’
// In File1.cs
public partial class MyClass { void Method1() {} }
// In File2.cs
public partial class MyClass { void Method2() {} }
”’
3. LINQ (Language Integrated Query)
Eingeführt in C# 3.0. Ermöglicht Abfragen verschiedener Datenquellen wie C#-Sammlungen, SQL und XML mithilfe einer gemeinsamen Abfragesyntax.
Beispiel:
”’
// Query C# Collection
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n% 2 == 0);
// Query SQL DB
var data = _db.Products.Select(p=>p.IsActive=true);
”’
4. Lambda-Ausdrücke
Eingeführt in C# 3.0. Bietet eine prägnante Möglichkeit, Inline-Ausdrücke oder anonyme Methoden zu schreiben.
Beispiel:
”’
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Lambda expression to define the criteria for filtering
IEnumerable<int> evenNumbers = numbers.Where(n => n& 2 == 0);
”’
5. Erweiterungsmethoden
Eingeführt in C# 3.0. Hilft dabei, Methoden zu einer vorhandenen Klasse hinzuzufügen, ohne diese zu ändern.
Beispiel:
”’
public static class StringExtension
{
public static string ToPascalCase(this string str)
{
// Implementation
}
}
string title = “hello world”;
Console.WriteLine(title.ToPascalCase());
”’
6. Dynamischer Typ
Eingeführt in C# 4.0. Ermöglicht das Schreiben dynamischer Codes in C#. Verzögert die Typüberprüfung von der Kompilierungszeit zur Laufzeit.
7. Async / Await
Eingeführt in C# 5.0. Hilft beim Schreiben asynchroner Codes, die für nicht blockierende UI- und Serveranwendungen unerlässlich sind.
Beispiel:
”’
public async Task<string> GetDataAsync(string url)
{
using (var client = new HttpClient())
{
return await client.GetStringAsync(url);
}
}
”’
8. String-Interpolation
Eingeführt in C# 6.0. Ermöglicht das Einbetten von Ausdrücken und Variablen direkt in Zeichenfolgenliterale.
Beispiel:
”’
string name = “Mohan”;
int age = 20;
//String interpolation using $
string message = $”Hello, my name is {name} and I am {age} years old.”;
”’
9. Expression-Bodied Members (Ausdrucksbasierte Elemente)
Eingeführt in C# 6.0. Erlaubt die Definition von prägnanten, einzeiligen Methoden, Eigenschaften und anderen Elementen mithilfe einer lambda-ähnlichen Syntax.
Beispiel:
”’
// Expression-bodied method
public int Add(int x, int y) => x + y;
”’
10. Auto-Property Initializers (Automatische Eigenschaftsinitialisierer)
Eingeführt in C# 6.0. Ermöglicht die Initialisierung des Werts einer automatisch implementierten Eigenschaft direkt in der Eigenschaftendeklaration.
Beispiel:
”’
// Auto-property initilizer
public int Website { get; set; } = “www.scholarhat.com”;
”’
…und weitere 10 Features. Diese Liste bietet einen Einblick in die wichtigsten Funktionen, die sowohl für angehende als auch erfahrene .NET/C#-Entwickler von Bedeutung sind. Es ist wichtig, diese Funktionen zu verstehen und in der eigenen Programmierung einzusetzen, um effizientere und robustere Anwendungen zu entwickeln.