Η C# παρέχει τυπικές δομές ελέγχου ροής — υπό συνθήκη (if, ), βρόχοι (, , ) και διακλάδωση (, , ) — συν σύγχρονες βελτιώσεις όπως εκφράσεις switch και pattern matching που κάνουν τον κώδικα πιο συνοπτικό.
switchforforeachwhilebreakcontinuereturnif (score >= 90)
grade = "A";
else if (score >= 80)
grade = "B";
else
grade = "F";
// ternary and null-coalescing
string status = age >= 18 ? "adult" : "minor";
string name = input ?? "default"; // ?? — use default if input is null
name ??= "fallback"; // ??= assign if null
// traditional switch
switch (day)
{
case "Sat":
case "Sun":
type = "weekend";
break; // break required (no fall-through)
default:
type = "weekday";
break;
}
// switch EXPRESSION (C# 8) — concise, returns a value, with pattern matching
string type = day switch
{
"Sat" or "Sun" => "weekend",
_ => "weekday", // _ = default
};
// pattern matching in switch
string describe = obj switch
{
int n when n > 0 => "positive int",
string s => $"string of length {s.Length}",
null => "null",
_ => "other",
};
Η σύγχρονη έκφραση switch είναι συνοπτική (επιστρέφει μια τιμή, χωρίς break), και υποστηρίζει ισχυρό pattern matching (ταίριασμα τύπων, προϋποθέσεων και περισσότερα) — μια σημαντική βελτίωση σε σχέση με την λεκτική παραδοσιακή switch.
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
foreach (επανάληψη οποιουδήποτε IEnumerable) είναι ο αυθεντικός βρόχος για συλλογές.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Ο έλεγχος ροής είναι ο βασικός μηχανισμός για την έκφραση της λογικής σε κάθε πρόγραμμα, επομένως η κατανόηση των δομών της C# είναι βασική καθημερινή γνώση.
Ενώ τα βασικά είναι τυπικά, οι σύγχρονες βελτιώσεις της C# αξίζει να γνωρίζετε και να χρησιμοποιείτε: η έκφραση switch (C# 8+) είναι μια σημαντική βελτίωση σε σχέση με την παραδοσιακή switch — συνοπτική, τιμή-επιστρέφουσα, χωρίς σφάλματα διαρροής (χωρίς ξεχασμένο break), και υποστήριξης pattern matching (ταίριασμα σε τύπους, προϋποθέσεις, τιμές και δομή), κάνοντας την περίπλοκη υπό συνθήκη λογική πολύ καθαρότερη από ένθετες αλυσίδες if-else.
Οι τελεστές null-coalescing (??, ??=) παρέχουν καθαρό χειρισμό null, και foreach είναι ο αυθεντικός τρόπος για επανάληψη συλλογών.
Η γνώση αυτών των δομών και η προτίμηση των σύγχρονων, πιο εκφραστικών μορφών (εκφράσεις switch με pattern matching έναντι λεκτικών δηλώσεων switch, null-coalescing για προεπιλογές) είναι καθημερινή γνώση για τη σύνταξη καθαρής, αυθεντικής C#.
Η έκφραση switch και το pattern matching ιδιαίτερα αντικατοπτρίζουν την εξέλιξη της σύγχρονης C# προς πιο λειτουργικό, συνοπτικό κώδικα, κάνοντάς τα σημαντικά να κατανοήσει τόσο για τη σύνταξη καλύτερου κώδικα όσο και για την ανάγνωση των τρέχουσων βάσεων κώδικα C# που χρησιμοποιούν εκτενώς αυτές τις δυνατότητες.