好的,这可能有点 hack,但请耐心等待:) 背景是我厌倦了一些 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));
所以我想有两个问题,这可以以某种方式完成吗?我对如何通过调用方法进行有条件的返回感到困惑。
另一个问题是,这是个好主意吗?像这样对语言进行猴子补丁有点奇怪,但我更喜欢代码的读取方式。如果可以将其放入方法上方的属性中,我会更干净: [Require(IsOpenFilter(inputStr))]