我有一个将自定义委托作为参数的函数,以实现以下目的:
delegate T TryParseDelegate<I,O,T>(I input, O output);
private string[] ReadMultiStringValue (string propertyName, TryParseDelegate<string, string[], bool> tryParse)
{
string cellValue = GetCellValue(propertyName);
string[] values = null;
if (tryParse(cellValue, values))
return values;
else
throw new Exception("Invalid cell value");
}
我会这样称呼:
string[] parsedValue = ReadMultiStringValue("myProperty", (n,p) => ParseHelper.TryParseName(n, out p));
当我调试代码时,一切似乎都正常工作,除了“值”在通过 tryParse 后仍然为空(并且在 TryParseName 方法内部时正确更新)。我尝试将 out 关键字添加到值中,但出现错误“参数 2 可能无法与 out 关键字一起传递”。
我在这里错过了什么?
白衣非少年
元芳怎么了
喵喔喔
相关分类