如果它不为空或继续执行,或者如何制作这样的东西,是否有一个衬垫返回一些东西?这一切都是为了避免在几种方法中复制面食中的IF线.
初始代码是这样的:
var error = ValidateStuff(someArg);
if (error != null)
{
return error;
}
DoOtherStuff();
Run Code Online (Sandbox Code Playgroud)
那么如何重构它以避免复制粘贴,如果无处不在?伪代码就像是
ValidateStuff(someArg) ? return ___ : continue;
DoSomethingElse();
AndMoreStuff();
Run Code Online (Sandbox Code Playgroud)
-EDIT-一个更简单的例子,为了澄清一些答案和评论中的疑虑:
public string Foo(string arg)
{
string fuu = GetMeSomething(arg);
if(fuu != null) return fuu;
ImDoingThings();
return "I did things";
}
Run Code Online (Sandbox Code Playgroud)
拥有这个会很棒:
public string Foo(string arg)
{
ReturnIfNotNull(GetMeSomething(arg));
ImDoingThings();
return "I did things.";
}
Run Code Online (Sandbox Code Playgroud) c# ×1