次のステートメントが 1 行 (つまり、3 項形式) で記述できるかどうかはわかりません。
if (A == B)
FunctionA();
else
FunctionB();
FunctionA と FunctionB はどちらもvoid型です。
いいえ。条件演算子は、非 void式に対してのみ有効です。ポイントは、2 つの式のうちの 1 つを評価し、それが結果になることです。
基本的に:if
ステートメントを書きます。これは、あるアクションまたは別のアクションを実行する慣用的な方法です。
次のような拡張メソッドを作成できます。
// For demonstration purposes only. Please don't use in real life.
public static void Conditional(this bool result,
Action trueAction,
Action falseAction)
{
Action action = result ? trueAction : falseAction;
action();
}
それで:
(A == B).Conditional(FunctionA, FunctionB);
...しかし、そうしないことを強くお勧めします。
次のステートメントが 1 行で記述できる場合
もちろん:
if (A == B) FunctionA(); else FunctionB();