不能隐式地将字符串[]转换为字符串的情况下
问题描述:
强制性我是C#的新手,正在为一个大型项目工作并遇到困难,Google似乎无法帮助我解决问题。不能隐式地将字符串[]转换为字符串的情况下
我知道案件需要保持不变,我正在使用一个变量来声明一个案例,但似乎找不到纠正问题的正确方法。
我正在使用代码来确定是否向市场发送订单消息。
的定义的变量
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...
}
}
答
开关。
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
}
}
+0
谢谢,我想我可能试图用开关逻辑过分复杂。使用if和else if语句是一个更好的主意。谢谢! –
什么是'case m_oKeys []'打算匹配给定没有指定索引...? –
那么,正如你已经指出的那样,case语句中使用的文字必须是常量。因此,您允许使用的唯一语法是常量字面值,例如'case“key1”:'。你不能在这里使用一个变量。相反,将开关语句写成一系列“if”语句。此外,这应该是什么匹配? 'case m_oKeys []:'