在以下情况下无法将String []隐式转换为字符串

时间:2017-01-23 16:49:04

标签: c#

强制我是C#的新手,正在为一个大型项目工作并且遇到了谷歌似乎无法帮助我解决问题。

我理解这种情况需要保持不变,我使用变量来声明一个案例,但我似乎无法找到纠正问题的正确方法。

我正在使用该代码来确定是否向市场发送订单消息。

定义的变量

private string[] m_oKeys = new string[1];

带问题的开关

        public void m_ts_OrderAdded(object sender, OrderAddedEventArgs e)
    {
        string key = e.Order.SiteOrderKey;
        switch (key)
        {
            case m_oKeys[1]:
                m_oObject = new e.Order();
                m_oKeys = new e.Order.SiteOrderKey();
                m_InFlight = new (false);
                break;
            case m_oKeys[]:
                m_oObject[] = e.Order;
                m_oKeys(1) = e.Order.SiteOrderKey;
                m_InFlight(1) = false;
                break;
            default:
                break;
                //handle order not found...
        }
    }

1 个答案:

答案 0 :(得分:1)

您已将数组定义为包含单个字符串。

private string[] m_oKeys = new string[1];

所以你只能引用第一个元素m_oKeys[0]。正如其他人所说,你必须使用case标签的常量。也许if-else会更适合您。

public void m_ts_OrderAdded(object sender, OrderAddedEventArgs e)
    {
        string key = e.Order.SiteOrderKey;
        if (key == m_oKeys[0])
        {
            // Do something
        }
        else
        {
            // Do something else
        }
    }