此语句出现在我正在尝试处理的代码中。我不明白行开头的#是什么:
#If DEBUG Then
EventsLog.WriteToEventLog("Service Starting (version: " & versionNumber.ToString & ")", ProductNameClass.Name, EventLogEntryType.Information, EventId.DebugStart)
#Else
EventsLog.WriteToEventLog("Service Starting (version: " & versionNumber.ToString & ")", ProductNameClass.Name, EventLogEntryType.Information, EventId.Starting)
#End If
答案 0 :(得分:2)
什么是#?
#(哈希)被称为Preprocessor Directives
什么是#If ...然后......#Else?
从表面上看,#If ... Then ...#Else指令的行为与If ... Then ... Else指令的行为相同。但是,#If ... Then ... #Else指令评估编译器编译的内容,而If ... Then ... Else语句在运行时评估条件。
如果您处于调试模式,则此条件编译第一个语句,否则它将编译第二个语句。
来源:MSDN
答案 1 :(得分:1)
它们是编译指令。在调试模式下运行项目时,将运行第一个语句。如果您以任何其他模式运行它,例如Release,则第二个语句将运行。
答案 2 :(得分:1)
它被称为preprocessor directives。如果在编译期间定义了编译符号(在您的情况下是DEBUG),则第一个分支将使其成为构建的代码,如果不是第二个分支将。如果您在DEBUG模式下构建项目,则默认定义DEBUG符号。