我想从一个方法返回多个数组,该方法使用一些 if 语句。我已经测试了代码的主体,它可以为自己工作。现在我想将它重新创建为我可以调用的方法,但是我得到了一些错误(并非所有代码路径都返回一个值)。我知道错误在于 if 语句没有发送任何返回,但我不确定如何修复错误并仍然获得我想要的功能。
这是该方法的代码:
private byte[] GetParameterBuff(string[] statement, ref byte[] tdi, ref byte[] tdo, ref byte[] mask, ref byte[] smask)
{
string[] parameters;
char[] delimiter = new char[] { '(', ')' };
int numBits = Convert.ToInt32(statement[1]);
if (numBits > 0)
{
Console.WriteLine("The amount of bits sent in the message is: " + numBits);
for (int p = 2; p < statement.Length; p++)
{
parameters = statement[p].Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
if (parameters[0] == "TDI")
{
tdi = ConvertHexStringToByteArray(parameters[1]);
foreach (byte b in tdi)
{
Console.WriteLine("The tdi array is: " + b);
}
return tdi;
}
else if (parameters[0] == "TDO")
{
tdo = ConvertHexStringToByteArray(parameters[1]);
foreach (byte b in tdo)
{
Console.WriteLine("The tdo array is: " + b);
}
return tdo;
}
else if (parameters[0] == "MASK")
{
mask = ConvertHexStringToByteArray(parameters[1]);
foreach (byte b in mask)
{
Console.WriteLine("The mask array is: " + b);
}
return mask;
}
else if (parameters[0] == "SMASK")
{
smask = ConvertHexStringToByteArray(parameters[1]);
foreach (byte b in smask)
{
Console.WriteLine("The smask array is: " + b);
}
return smask;
}
else
{
return null;
}
}
return ??;
}
else
{
Console.WriteLine("The amount of bits sent in the message is: " + numBits);
return null;
}
}