C# von den Grundlagen bis zum Profi — Folge 2
Erstellen Sie einen Ablauf mit bedingten Anweisungen, Schleifen und Methoden
Die in diesem Blog verfassten Artikel wurden mit dem Ziel erstellt, zu unterrichten. Außerdem können die Informationen im Artikel falsch sein, also seien Sie bitte vorsichtig.
Ein Programm endet nicht damit, nur Werte zu speichern. Sie müssen je nach Bedingungen unterschiedlichen Code ausführen, dieselben Aufgaben wiederholen und Methoden in sinnvolle Einheiten unterteilen.
Bedingte Anweisungen und Schalter
string GetState(int health)
{
if (health <= 0)
{
return "Dead";
}
return health < 30 ? "Danger" : "Normal";
}
int reward = rank switch
{
"S" => 1000,
"A" => 500,
_ => 100
};
Bei einfachen zweizackigen Werten ist es einfacher zu lesen, und der Schalter funktioniert gut, wenn ein Wert mit mehreren Fällen verglichen wird. _ ist der verbleibende Fall, der zu keinem der vorherigen Muster passt.
Schleife
var damages = new[] { 10, 20, 15 };
int total = 0;
foreach (int damage in damages)
{
if (damage <= 0)
{
continue;
}
total += damage;
}
foreach ist praktisch, um Elemente der Reihe nach zu lesen. Wenn Sie einen Index benötigen oder den Wiederholungsbereich direkt steuern müssen, verwenden Sie for.
Das Hinzufügen oder Löschen von Elementen einer Sammlung innerhalb einer Schleife kann die Aufzählung ungültig machen. Sicherer ist es, die zu löschenden Objekte separat einzusammeln oder von hinten durchzugehen.
Methoden und frühe Renditen
bool TryAttack(Player attacker, Monster target, out int damage)
{
damage = 0;
if (!attacker.IsAlive || !target.IsAlive)
{
return false;
}
damage = Math.Max(1, attacker.Attack - target.Defense);
target.TakeDamage(damage);
return true;
}
Wenn Sie Eingaben zurückgeben, die nicht zuerst verarbeitet werden können, wird die Einrückung des normalen Flusses nicht vertieft. Der Parameter out kann verwendet werden, um sowohl Erfolg oder Misserfolg als auch das Berechnungsergebnis zurückzugeben.
Methodennamen sollten die Absicht des Aufrufers offenbaren und nicht die interne Implementierung. Wenn Bedingungen und Iterationen lang werden, ist es besser sicherzustellen, dass jede Methode nur eine Verantwortung hat, anstatt einfach die Anzahl der Zeilen zu reduzieren.