新的惰性初始化
New lazy initialization
正在尝试使用 NLog 创建日志记录助手 class。但是在创建 属性.
时出现以下错误
Error BC30518 Overload resolution failed because no accessible 'New'
can be called with these arguments
Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String)))(Function() New Dictionary(Of TraceLevel, Action(Of String))() From {
{TraceLevel.Info, ClassLogger.Info},
{TraceLevel.Debug, ClassLogger.Debug},
{TraceLevel.[Error], ClassLogger.[Error]},
{TraceLevel.Fatal, ClassLogger.Fatal},
{TraceLevel.Warn, ClassLogger.Warn}
})
我希望它能按如下方式使用。
''' <summary>
''' Get property for Logger
''' </summary>
Private ReadOnly Property Logger() As Dictionary(Of TraceLevel, Action(Of String))
Get
Return LoggingMap.Value
End Get
End Property
找到答案谢谢:
Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String))) _
(Function() New Dictionary(Of TraceLevel, Action(Of String)) From
{{TraceLevel.Info, AddressOf ClassLogger.Info},
{TraceLevel.Debug, AddressOf ClassLogger.Debug},
{TraceLevel.Error, AddressOf ClassLogger.Error},
{TraceLevel.Fatal, AddressOf ClassLogger.Fatal},
{TraceLevel.Warn, AddressOf ClassLogger.Warn}
})
正在尝试使用 NLog 创建日志记录助手 class。但是在创建 属性.
时出现以下错误Error BC30518 Overload resolution failed because no accessible 'New' can be called with these arguments
Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String)))(Function() New Dictionary(Of TraceLevel, Action(Of String))() From {
{TraceLevel.Info, ClassLogger.Info},
{TraceLevel.Debug, ClassLogger.Debug},
{TraceLevel.[Error], ClassLogger.[Error]},
{TraceLevel.Fatal, ClassLogger.Fatal},
{TraceLevel.Warn, ClassLogger.Warn}
})
我希望它能按如下方式使用。
''' <summary>
''' Get property for Logger
''' </summary>
Private ReadOnly Property Logger() As Dictionary(Of TraceLevel, Action(Of String))
Get
Return LoggingMap.Value
End Get
End Property
找到答案谢谢:
Private Shared ReadOnly LoggingMap As New Lazy(Of Dictionary(Of TraceLevel, Action(Of String))) _
(Function() New Dictionary(Of TraceLevel, Action(Of String)) From
{{TraceLevel.Info, AddressOf ClassLogger.Info},
{TraceLevel.Debug, AddressOf ClassLogger.Debug},
{TraceLevel.Error, AddressOf ClassLogger.Error},
{TraceLevel.Fatal, AddressOf ClassLogger.Fatal},
{TraceLevel.Warn, AddressOf ClassLogger.Warn}
})