Yip*_*Yay 0 c# design-by-contract return switch-statement
处理以下情况的首选方法是什么:
switch (numberOfActualBytes)
{
case 1: return something1;
case 2: return something2;
case 3: return something3;
case 4: return something4;
}
Run Code Online (Sandbox Code Playgroud)
我肯定知道numberOfActualBytes由于使用过的合同是在范围内1-4.
我该如何编写不会导致not all code paths return a value错误的代码?
我怀疑我应该在这个函数结束时抛出一些异常default switch case,但是可能有一个更好的解决方案.
default如果应用程序可以支持1..4合同,我更倾向于抛出超出范围的异常.该异常反映了调用者对他们将给我良好数据的期望.
如果您的编译器无法弄清楚该default案例解决了并非所有代码路径,那么请将其放在return后面switch.但是c#编译器会把它弄好.