【发布时间】:2017-02-23 20:59:30
【问题描述】:
我正在尝试制作将公制转换为英制的转换器。我也在为它做单元测试。如果我传递负值,则该方法应该返回 null。是否可以从返回 double 的方法中返回 null。
public double mgToGrain(double mg)
{
double grain = mg * myValues["mgTograin"];
return grain;
if (mg < 0) {
return null;
}
}
`
【问题讨论】:
-
让它返回
double?并且好吧...修复你的代码,检查应该在第一次返回之前... -
不管你是否可以,我不会。我宁愿抛出一个异常或返回一些可选的实体。这样它就向客户端表明可能出现错误结果,他们应该能够处理它
-
@Brian 但随后他可能需要引入
TryMgToGrain()方法,该方法不会抛出并返回bool...hmmmm.... -
这个问题绝对不是“什么是可空类型”的重复。它更加具体,因为返回类型 (
double) 具有其他内置类型所缺少的功能。投票重新开放。