为什么我收到此错误?
public class ParameterParser
{
public List<string> ParseParameter(string queryString)
{
queryString = queryString.Replace(" ", "");
string[] strs = queryString.Split(@"(", @"=", @",", @"<>",
StringSplitOptions.None);
List<string> parameters = new List<string>();
foreach (string ss in strs)
{
string s = ss.Trim(')');
if (s.StartsWith("@") && !s.Equals("") && s!=null)
{
parameters.Add(s.Replace(" ", ""));
}
}
return parameters;
}
}
Run Code Online (Sandbox Code Playgroud)
错误3'string.Split(params char [])'的最佳重载方法匹配有一些无效的参数F:...\ParameterParser.cs
如果要传递字符串数组,则必须明确地执行此操作:
string[] strs = queryString.Split(new string[] {"(", "=", ",", "<>"},
StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
我怀疑你是在用这样的东西建模你的代码:
string[] strs = queryString.Split('(', '=', ',');
Run Code Online (Sandbox Code Playgroud)
这是使用参数数组(paramsC#中的修饰符).参数阵列是只适用于最后一个参数,并且没有过载String.Split需要params string[].这就是为什么它不适合你.
请注意,我已将字符串更改为简单的字符串文字 - 我建议您在实际需要时仅使用逐字字符串文字.