2014-10-05 103 views
1

編譯VB.NET代碼時,默認情況下,如果函數未返回值,編譯器不會發出錯誤通知。使用CodeDOM編寫「無返回值的函數返回內在值類型」時的返回錯誤

您可以在項目的編譯器選項下更改此項,以返回「返回無返回值的函數返回內部值類型」錯誤。

只是想知道是否有可能使用VBCodeProvider CodeDOM類實現相同?

Dim provider As New Microsoft.VisualBasic.VBCodeProvider 
Dim params As New CompilerParameters 
Dim results As CompilerResults 

With params 
    .GenerateExecutable = False 
    .GenerateInMemory = True 
    .IncludeDebugInformation = False 
End With 

'Compile 
results = Provider.CompileAssemblyFromSource(params, Source) 

Return results 
+2

'params.WarningLevel = 4'和'params.TreatWarningsAsErrors = True'將是最嚴格的CodeDOM了。我不確定如何處理特定的一個。 – Plutonix 2014-10-05 23:21:05

+0

謝謝。正是我在找什麼。 – Robert 2014-10-06 00:33:53

回答

1

您可以通過CompilerParams指定誤差控制:

With params 
    .GenerateExecutable = False 
    .GenerateInMemory = True 
    .IncludeDebugInformation = False 
    ' add: 
    .WarningLevel = 4 
    .TreatWarningsAsErrors = True 
End With 

WarningLevel涉及到C#編譯標籤選項設置,但沒有很多關於它的文檔的CodeDOM的。那些將是最嚴格的設置,所以你感興趣的應該在那裏。