2016-06-28 24 views
1

想象下面的代碼在VB.NET:插入文件或DB值到編譯常數(Visual Basic中)

#Const TestCode = True 
#If TestCode Then 
    Console.WriteLine("Test code enabled.") 
#Else 
    Console.WriteLine("No test code.") 
#End If 

這些條件將在編譯時間執行,但現在我想給恆TestCode從文件或數據庫中獲取值。這個想法是能夠在運行時改變這個恆定的值,而不需要更新生產中的軟件。

任何人都知道該怎麼做?

由於

+1

「Const」常量(和'#Const'不完全相同 - 它用於編譯不同的版本/風味)。你不能從變量中分配它。你*可以*使用除Bool以外的其他東西來定義不同的數據庫或其他內容 – Plutonix

回答

1

#if有條件地編譯的代碼包含塊,因此,如果TestCode = True,然後Console.WriteLine("No test code.")甚至沒有編譯。在運行時將無法「切換到它」,因爲該行代碼不會存在於應用程序二進制文件中。爲什麼不使用常規的if而不是編譯器指令?