相关疑难解决方法(0)

一个函数应该只有一个return语句吗?

是否有充分的理由说明为什么在函数中只有一个return语句是更好的做法?

或者,一旦逻辑正确就可以从函数返回,这意味着函数中可能有很多返回语句?

language-agnostic coding-style

781
推荐指数
28
解决办法
23万
查看次数

干修复可能性,C#

这段代码一直困扰着我,部分是因为

if (result != OpResult.Success) { // return
Run Code Online (Sandbox Code Playgroud)

代码重复,到处都是.

1..n执行一系列评估.每次评价后,进行检查,以确保手术很成功(利用枚举派生的自定义返回值): OpResult.Success.

这是一个例子(带有示例对象等):

OpResult result = OpResult.Sucess;

result = performOperationOne(commonObjectArgument);

if (result != OpResult.Success)
{
    trace.Exit(); // Exit logging mechanism
    return result;
}

result = performOperationTwo(commonObjectArgument);

if (result != OpResult.Success)
{
    trace.Exit();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,if (result != OpResult.Success)用作流控制,即除非所有先前的操作都成功,否则下一个操作不会运行.

使用.Net 4.*,C#在语法上已经具备了一些非常令人难以置信的功能.我可以采取哪些措施来消除每次操作后需要重新编写此评估的内容吗?

.net c#

4
推荐指数
2
解决办法
194
查看次数

为什么在方法结束时返回是一种好习惯

可能重复:
函数是否只有一个return语句?

一位程序员问我为什么总是在方法结束时返回?

我们都被教导在方法中只有一个return语句而不是遍布代码的多个return语句.

有什么好理由吗?

c# oop

3
推荐指数
1
解决办法
2909
查看次数

Inline If语句中的默认条件

我在我的c#代码中获取数据库行.Row包含3个不同的标志(3列具有true或false值).这些列中只有一列为真,这将决定该对象的类型.如何在一行代码中确定该对象的类型.如果所有三个标志都是假的,那么我需要一个默认类型.

var myObject = this.unitOfWork.myRepository.GetMeObject();

 var objectType = myObject .IsA == true
                              ? "A"
                              : myObject .IsB == true
                                    ? "B"
                                    : myObject .IsC == true
                                          ? "C"
                                          : "D";
Run Code Online (Sandbox Code Playgroud)

如果条件均无效,则ObjectType应为D.

任何建议将不胜感激.

谢谢

.net c# asp.net-mvc-3

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

标签 统计

c# ×3

.net ×2

asp.net-mvc-3 ×1

coding-style ×1

language-agnostic ×1

oop ×1