【问题标题】:How I can return a OrderedDictionary in a method?如何在方法中返回 OrderedDictionary?
【发布时间】:2013-07-08 20:45:39
【问题描述】:

我想在我的方法中返回一个 OrderedDictionary,但我的代码有错误...

我不知道为什么我不能这样做:

public OrderedDictionary getAllPortsInformations()
        {

            OrderedDictionary SerialPort = filtreXml("/catalog/cd/SerialPort", "SerialPort");
            OrderedDictionary BaudRate = filtreXml("/catalog/cd/BaudRate", "BaudRate");
            OrderedDictionary DataBits = filtreXml("/catalog/cd/DataBits", "DataBits");
            OrderedDictionary StopBits = filtreXml("/catalog/cd/StopBits", "StopBits");
            OrderedDictionary ParityBits = filtreXml("/catalog/cd/ParityBits", "ParityBits");
            OrderedDictionary ReadTimeout = filtreXml("/catalog/cd/ReadTimeout", "ReadTimeout");
            OrderedDictionary WriteTimeout = filtreXml("/catalog/cd/WriteTimeout", "WriteTimeout");
            OrderedDictionary PinCode = filtreXml("/catalog/cd/PinCode", "PinCode");
            OrderedDictionary output = new OrderedDictionary();


            foreach (DictionaryEntry sp in SerialPort)
                output.Add(sp.Key, sp.Value);
            foreach (DictionaryEntry br in BaudRate)
                output.Add(br.Key, br.Value);
            foreach (DictionaryEntry db in DataBits)
                output.Add(db.Key, db.Value);
            foreach (DictionaryEntry sb in StopBits)
                output.Add(sb.Key, sb.Value);
            foreach (DictionaryEntry pb in ParityBits)
                output.Add(pb.Key, pb.Value);
            foreach (DictionaryEntry rt in ReadTimeout)
                output.Add(rt.Key, rt.Value);
            foreach (DictionaryEntry wt in WriteTimeout)
                output.Add(wt.Key, wt.Value);
            foreach (DictionaryEntry pc in PinCode)
                output.Add(pc.Key, pc.Value);

                return output;
        }

错误信息

错误:错误 1 ​​'application.Xml.getAllPortsInformations ()':所有代码路径不一定都返回值

【问题讨论】:

  • 您遇到的错误是什么,哪一行?您在发布示例时是否在返回输出之前忘记了output.Add(pc.Key, pc.Value);,还是您遇到的错误?
  • 最后一个 foreach 语句是错字吗?
  • @ScottChamberlain,他在最后一个 foreach 返回输出的时候做对了 :)
  • 添加了output.Add(pc.Key, pc.Value);后,您是否仍然收到错误消息?如果是这样,你需要在你的函数中包含所有代码,你会遗漏一些东西。

标签: c# .net ordereddictionary


【解决方案1】:

您的最后一个 foreach 循环在范围内没有任何内容。要么摆脱它,要么

foreach (DictionaryEntry pc in PinCode) { }

【讨论】:

  • 查看代码模式,他更有可能在返回之前忘记了output.Add(pc.Key, pc.Value);
【解决方案2】:

你的最后一个 foreach 没有做任何事情?或者这是一个错字。

【讨论】:

    猜你喜欢
    • 2021-09-18
    • 2018-06-04
    • 1970-01-01
    • 2021-02-17
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多