引数リストに肯定と否定を混ぜるのはあまりよろしくないコード。
例えば下記の様なバリデーションをするコードがあったとして…
bool isValidXxxx(string targetValue, bool allowNull, bool allowZero, bool notAllowWhiteSpace){
//nullチェック
if(!allowNull && targetValue == null){
return false;
}
//ゼロチェック
if(!allowZero)
{
int parsed;
if( Int32.TryParse(targetValue, out parsed) && parsed==0){
return false;
}
}
//空白のみ・空文字チェック
if(notAllowWhiteSpace && targetValue.length!=0 && targetValue.Trim.length==0){
return false;
}
}
第2引数は許容=true, 第3引数は許容=trueなのに、第4引数は拒否=trueになっています。
この場合、第4引数も許容=trueにするのが、親切なコードの書き方。