あなたのクラスでガード条項の爆発を管理する際に、人々は(もしあれば)どのようなアプローチを取りますか?例えば:
public void SomeMethod<T>(string var1, IEnumerable<T> items, int count)
{
if (string.IsNullOrEmpty(var1))
{
throw new ArgumentNullException("var1");
}
if (items == null)
{
throw new ArgumentNullException("items");
}
if (count < 1)
{
throw new ArgumentOutOfRangeException("count");
}
... etc ....
}
私が現在取り組んでいるプロジェクトには、パブリックメソッドに同様のガード句のセットを持つ多くのクラスがあります。
私は.NET4.0コード契約を知っていますが、これは現時点では私たちのチームのオプションではありません。