c# - 包含 foreach 语句的方法只有一个返回值

标签 c# for-loop foreach return

我为单元测试准备了以下方法,我知道它总是会运行 for-each 循环,有没有办法摆脱第二个 return 语句?

public Enums.GYRStatus GetStatusForTransformer(
            string factoryCode, 
            Enums.Technology technology, 
            string transformerType,
            int transformerSize,
            string transformerModel)
{
   fakeStandardsAndSizesFictionary = new Dictionary<Tuple<string,
                                                    Enums.Technology,
                                                    string, int, string>, int>() 
   {
       { Tuple.Create("SELUD", Technology.CVT,"---", 0, ""), 1} };
   }

   foreach (var pair in fakeStandardsAndSizesFictionary)
   {
       if (pair.Key.Item1 == factoryCode &&
          pair.Key.Item2 == technology &&
          pair.Key.Item3 == transformerType &&
          pair.Key.Item4 == transformerSize &&
          pair.Key.Item5 == transformerModel)
           return (Enums.GYRStatus)pair.Value;
   }
   return (Enums.GYRStatus)1; // second return never used
}

最佳答案

可以替换

return (Enums.GYRStatus)1;

throw new InvalidOperationException();

它在语义上看起来也更正确,假设永远不会到达这个地方。

关于c# - 包含 foreach 语句的方法只有一个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720606/

相关文章:

c# - 如何使用 c# asp.net 上传多张图片(从一个文件夹)?

c# - 在随机数组中搜索特定值

php - 循环数组没有给出所需的结果

java - 将 Enumeration<T> 视为 Iterator<T>

c# - 数据绑定(bind) Windows 窗体控件在失去焦点之前无法识别更改

c# - Obfuscar - 跳过匿名类型的混淆

c# - 如何在 DataGridViewComboBoxColumn 下拉列表中显示与文本框中不同的值?

python - 如何将我的 Python 代码一次应用于一个文件夹中的所有文件,以及如何为每个后续输出文件创建一个新名称?

javascript - 这个for循环有什么问题?

C# 匿名类型 foreach 循环,更好的方法吗?