2012-03-30 339 views
2

在C#中,我可以向VS發信號以強制它忽略特定行上的錯誤嗎?Visual Studio C#忽略錯誤

我有一個變量,pos2,只是初始化的一些時間(它是隨機的)。但是,初始化時,我同時設置了一個標誌。

pos2 = new Vector3(2.5F, 0.624F, 75F); 
secondCar = true; 

後來在代碼中(我的國旗檢查後面),我正常使用pos2,編輯器拋出一個錯誤。我經常使用這個腳本,所以我知道它沒有被破壞,並且由於pos2在標誌檢查之後,我知道我永遠不會在沒有聲明的時候使用pos2。在Python中,你可以使用「@UnusedVariable」或類似的東西(我不太清楚),但是我的VS編輯器不斷向我拋出一個錯誤,我知道它永遠不會達到這種情況。

+0

編譯器不會執行足夠深入的分析以可靠地檢測到您只使用pos2的初始化值。這需要解決暫停問題。考慮使用Nullable來擺脫* secondCar *變量。也解決了這個錯誤。 – 2012-03-30 16:38:32

回答

3

考慮使用Vector3?nullable type)而不是Vector3,因爲無法抑制錯誤。

+0

啊,這就是我一直在尋找的東西。我只是不知道!謝謝 – 2012-03-30 16:47:59

3

這聽起來像你得到CS165有關使用未分配的局部變量的錯誤。簡單地說,沒有辦法壓制這個消息。 C#中的警告是可以抑制的,但錯誤不是。

今天的代碼可能確實是正確的,並且使用適當的門,如你提到的secondCar。然而,這些邏輯門對於下一個開發人員來說可能並不明顯,或者從現在開始的一個星期左右,你自己就不會明白。試圖在C#中抑制這種有效的錯誤就是爲未來的問題打開大門。

而不是試圖在這裏對抗編譯器,我會建議使用它而不是。

0

有關更多詳細信息,請參見this answer,但通常您可以使用#pragma warning disable來禁用警告。

......我假設你確實表示警告,對吧?如果這是一個錯誤,你的代碼將不能編譯,所以你不能忽略它。但是你可以忽略警告。如果你真的得到一個錯誤,只需使用一個變量初始化,就像這樣:

int someVariable = 0; 
YourClass someInstance = null; 

那麼編譯器不會抱怨未初始化的變量。

+0

我相信OP是打CS 165,這是一個錯誤。不是100%肯定的,但這個問題似乎指向 – JaredPar 2012-03-30 16:32:17

+0

我完全同意你,JaredPar,使用這樣的未初始化的變量正在走向不可維護的代碼之路。我絕對不會用生產應用程序來做到這一點。 (但我承認,我已經完成了適用於我和我的應用程序 - 像引導數據庫這樣的東西,完成後將被丟棄。) – 2012-03-30 16:34:21

1

你想初始化變量爲null或其他一些默認值。這樣錯誤就會消失,而不是被壓制。