短絡評価
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部。レッスン 36/66。
短絡評価は、C#における最適化手法で、論理AND(&&)演算子とOR(||)演算子の2番目のオペランドは、必要な場合にのみ評価されます。
論理 AND(&&)では、最初のオペランドが false の場合、2 番目のオペランドにかかわらず、結果は常に false になります。
bool result = false && SomeMethod();この例では、最初のオペランドがすでにfalseなので、SomeMethod()は呼び出されません。
論理 OR(||)では、最初のオペランドが true の場合、2番目のオペランドに関係なく、結果は常に true になります。
bool result = true || SomeMethod();ここでは、最初のオペランドがすでにtrueなので、SomeMethod()は呼び出されません。
この動作は、オブジェクトのプロパティにアクセスする前にnullかどうかを確認するなど、エラーを防ぐために利用できます。
// 安全 - student が null の場合、右辺は評価されない
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}チャレンジ
簡単ProcessUserInputという名前のメソッドを作成し、次の2つの引数を受け取るようにします。
- 文字列(
input) - 整数(
minLength)
このメソッドは次の処理を行います。
- inputがnullでないか確認する
- inputの長さが少なくとも
minLengthであるか確認する - 両方の条件がtrueの場合に限り、"Valid input: "に続けてinputを出力する
- いずれかの条件を満たさない場合は、"Invalid input"を出力する
潜在的なNullReferenceExceptionを防ぐため、短絡評価を使用してください。
自分で試してみよう
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// ここにコードを書いてください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: C#オンラインコンパイラ