我想用这样的日志函数创建一个c#库:
class MyLogClass
{
public void log(string format, params object[] args)
{
string message = string.Format(format, args);
// custom function
log_to_file(message); // or log_to_db() or log_to_txtBox()
}
}
我们的想法是使用log_to_file(),log_to_db()或log_to_txtBox()来根据需要更改函数。
我在考虑使用第三个参数(在格式之前)作为代表来表示自定义函数,但我不知道该怎么做。
答案 0 :(得分:1)
使用委托,您可以编写如下内容:
class MyLogClass
{
public static void Log(Action<string> outputAction, string format,
params object[] args)
{
string message = string.Format(format, args);
outputAction(message);
}
}
请注意, args
参数后参数不能,因为后者是参数数组(由{{1}表示}关键字) - 参数数组只能作为声明中的最后一个参数出现。
或者,您可以在创建类的实例时设置操作:
params