ASP.NET中的#含义是什么?

时间:2014-09-09 08:54:08

标签: vb.net

此语句出现在我正在尝试处理的代码中。我不明白行开头的#是什么:

    #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

3 个答案:

答案 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符号。