わかりました、これは少しハックかもしれませんが、我慢してください:)背景は、そのifステートメントがメソッド全体のインデントを台無しにするメソッドにうんざりしていることです。
public SomeClass DoStuff(string inputStr)
{
SomeClass result =null;
if (IsOpenFilter(inputStr))
{
....
}
return result;
}
だから私は考えていたのですが、代わりに次のようなことができればいいのではないでしょうか:
public SomeClass DoStuff(string inputStr)
{
Require(IsOpenFilter(inputStr),null);
....
return result;
}
このケースは、何らかの形でコード コントラクトによってカバーされる可能性があります。その場合は、私を修正してください :)
ステートメントが true に評価されない場合、null が返されるという考え方です。メソッドの戻り値の型がない場合は、次のようになります: Require(IsOpenFilter(inputStr));
2つの質問があると思いますが、これはどうにかして行うことができますか? メソッドの呼び出しから条件付きリターンを行う方法に困惑しています。
他の質問は、これは良い考えですか? このように言語にモンキー パッチを適用するのは少し奇妙ですが、コードの読み取り方が好きです。メソッドの上の属性に入れることができれば、さらにきれいになります: [Require(IsOpenFilter(inputStr))]