Clean Codeを読んで以来、私は自分のコードを説明的で理解しやすいものにしようと努めてきました。AまたはBのいずれかを入力する必要があるという条件がありますが、両方を入力する必要はありません。そして、どちらでもありません。現在、if
この状態をチェックするためのステートメントは一目で理解するのは難しいです。何がチェックされているかを一目で明確にするために、次のようにどのように記述しますか
if ((!string.IsNullOrEmpty(input.A) && !string.IsNullOrEmpty(input.B))
|| string.IsNullOrEmpty(input.A) && string.IsNullOrEmpty(input.B))
{
throw new ArgumentException("Exactly one A *OR* B is required.");
}