处理以下情况的首选方法是什么:
switch (numberOfActualBytes)
{
    case 1: return something1;
    case 2: return something2;
    case 3: return something3;
    case 4: return something4;
}我确信,由于使用过的合同,numberOfActualBytes在1-4范围内。
如何编写不会导致not all code paths return a value错误的代码?
我怀疑我应该在这个函数的末尾或者在default switch case中抛出一些异常,但是可能有一个更好的解决方案。
发布于 2011-11-24 04:01:33
如果应用程序能够维护1..4协议,我更愿意在default情况下抛出超出范围的异常。异常反映了调用者的期望,他们将给我提供良好的数据。
如果您的编译器无法确定default案例解决了并非所有的代码路径,那么将return放在switch之后。但是c#编译器会把它做对了。
https://stackoverflow.com/questions/8252065
复制相似问题