小编Got*_*nen的帖子

c#如何在一个班轮中"返回如果不为空"?

如果它不为空或继续执行,或者如何制作这样的东西,是否有一个衬垫返回一些东西?这一切都是为了避免在几种方法中复制面食中的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#

6
推荐指数
1
解决办法
5608
查看次数

标签 统计

c# ×1