如何干净利落地将参数传递给委托?
How can I cleanly pass a parameter to a delegate?
下面是委托部分的 MSDN 代码。
代码正常运行,但我想知道如何将消息输入到这个小型日志记录组件中。
错误信息的正确输入方法是什么?
我应该使用:Logger.WriteMessage or Logger.LogMessage
虽然两者都在屏幕上打印一条消息
Logger.WriteMessage(error_msg1);
或
Logger.LogMessage(error_msg2);
using System;
namespace DelegateTest
{
class Program
{
static void Main(string[] args)
{
string error_msg1 = "101 : Error Disk";
string error_msg2 = "104 : Error Retriving";
Logger.WriteMessage += LoggingMethods.LogToConsole;
Logger.WriteMessage(error_msg1);
Logger.LogMessage(error_msg2);
Console.Read();
}
}
public static class Logger
{
public static Action<string> WriteMessage;
public static void LogMessage(string msg)
{
WriteMessage(msg);
}
}
public static class LoggingMethods
{
public static void LogToConsole(string message)
{
Console.Error.WriteLine(message);
}
}
}
使用日志消息。它是 Logger 预期 API 的一部分,可能会添加额外的功能(添加时间戳)。它还应该防止 WriteMessage 为 null。
Logger.WriteMessage
是 'plug-in' 点。你不应该用它来写任何东西,你不应该假设它 不为空
下面是委托部分的 MSDN 代码。
代码正常运行,但我想知道如何将消息输入到这个小型日志记录组件中。
错误信息的正确输入方法是什么?
我应该使用:Logger.WriteMessage or Logger.LogMessage
虽然两者都在屏幕上打印一条消息
Logger.WriteMessage(error_msg1);
或
Logger.LogMessage(error_msg2);
using System;
namespace DelegateTest
{
class Program
{
static void Main(string[] args)
{
string error_msg1 = "101 : Error Disk";
string error_msg2 = "104 : Error Retriving";
Logger.WriteMessage += LoggingMethods.LogToConsole;
Logger.WriteMessage(error_msg1);
Logger.LogMessage(error_msg2);
Console.Read();
}
}
public static class Logger
{
public static Action<string> WriteMessage;
public static void LogMessage(string msg)
{
WriteMessage(msg);
}
}
public static class LoggingMethods
{
public static void LogToConsole(string message)
{
Console.Error.WriteLine(message);
}
}
}
使用日志消息。它是 Logger 预期 API 的一部分,可能会添加额外的功能(添加时间戳)。它还应该防止 WriteMessage 为 null。
Logger.WriteMessage
是 'plug-in' 点。你不应该用它来写任何东西,你不应该假设它 不为空