如何将 NLog 记录器作为可选参数传递
How do I pass an NLog logger as optional parameter
我正在使用引用一个库的代码,该库有一个可选的 NLog.Logger 作为参数(这个库的代码和这个方法定义已经丢失,所以我必须重新创建它)。下面的代码抱怨此消息: "Error 41 Constant expression is required." 我无法弄清楚如何使它工作,因为我试图定义一个 Const,以及只是将默认值设置为 null 但没有任何效果。如何创建 Logger 类型的选项参数?谢谢!
Dim objTraceLogDefault As Logger = LogManager.GetLogger("TraceFile")
Public Function MyFunction(Optional ByVal objTraceLog As Logger =
objTraceLogDefault)
可选参数应该是常量,(例如数字、字符串或Nothing
),因为编译器添加常量值会增加编译时间。
您可以将默认值设置为 Nothing
并检查正文中的 Nothing
。
Private Function MyFunction(ByVal Optional objTraceLog As Logger = Nothing)
objTraceLog = If(objTraceLog, objTraceLogDefault)
End Function
我正在使用引用一个库的代码,该库有一个可选的 NLog.Logger 作为参数(这个库的代码和这个方法定义已经丢失,所以我必须重新创建它)。下面的代码抱怨此消息: "Error 41 Constant expression is required." 我无法弄清楚如何使它工作,因为我试图定义一个 Const,以及只是将默认值设置为 null 但没有任何效果。如何创建 Logger 类型的选项参数?谢谢!
Dim objTraceLogDefault As Logger = LogManager.GetLogger("TraceFile")
Public Function MyFunction(Optional ByVal objTraceLog As Logger =
objTraceLogDefault)
可选参数应该是常量,(例如数字、字符串或Nothing
),因为编译器添加常量值会增加编译时间。
您可以将默认值设置为 Nothing
并检查正文中的 Nothing
。
Private Function MyFunction(ByVal Optional objTraceLog As Logger = Nothing)
objTraceLog = If(objTraceLog, objTraceLogDefault)
End Function