2013-10-31 72 views
0

當方法的參數列表中的某個條件失敗時,我想創建一種編譯器警告。我不只是拋出一個異常的原因是,用戶可能有可能爲方法提供一個「壞」的參數,但是這樣的方法結果是有點不可預知的。我只想給他一個提示,即給定的參數可能不是有效的,比如Visual Studio中通常的狀態爲「檢測不到的代碼」或「變量從未使用過」等的調試警告。在VisualStudio中拋出Debugeger警告

有沒有辦法做到這一點?

編輯:只是一個樣本一段代碼:

void main() { 
    MyObject m = new MyObject(); 
    this.doSomething<MyObject>(m); 
} 

T doSomething(object m) { 
    // put a message to the compiler-warnings that states the used object should derive from type T 
} 
+0

您是否想將它「扔」到調試會話中或程序正常運行期間? – SJuan76

+0

不僅在調試期間,而且在正常編碼會話期間... – HimBromBeere

+1

拋出異常。調用具有未定義行爲的方法的程序員只是一個等待發生的錯誤。 – SJuan76

回答

1

您可以使用

System.Diagnostics.Debug.WriteLine(message) 

其中,消息是要寫入調試信息。

可能對調試語法方便的替代方案是

System.Diagnostics.Debug.Assert(condition, message) 

其中條件是一個布爾條件,並且僅當條件的計算結果爲假則顯示消息。

0

C#編譯器不公開此類事物的可擴展性機制。但是,這聽起來像是一個非常適合自定義FxCop/Visual Studio代碼分析規則的候選人。