Hom*_*mam 39 c# delegates action params-keyword
当我试图在Action委托中使用params时......
private Action<string, params object[]> WriteToLogCallBack;
Run Code Online (Sandbox Code Playgroud)
我收到了这个设计时错误:
类,结构或接口成员声明中的标记'params'无效
任何帮助!
Cod*_*aos 41
这个解决方法怎么样?
private Action<string, object[]> writeToLogCallBack;
public void WriteToLogCallBack(string s, params object[] args)
{
if(writeToLogCallBack!=null)
writeToLogCallBack(s,args);
}
Run Code Online (Sandbox Code Playgroud)
或者您可以定义自己的委托类型:
delegate void LogAction(string s, params object[] args);
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以试试这个.它允许任意数量的参数,如果传递错误的数字或类型的参数,您将得到编译时错误.
public delegate T ParamsAction<T>(params object[] oArgs);
public static T LogAction<T>(string s, ParamsAction<T> oCallback)
{
Log(s);
T result = oCallback();
return T;
}
Foo foo = LogAction<Foo>("Hello world.", aoArgs => GetFoo(1,"",'',1.1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23709 次 |
| 最近记录: |