2011-12-01 22 views
2

是否可以選擇性地將某些隱式類型轉換視爲錯誤,或者至少在它們發生時生成警告?當在Visual C中隱式地從X轉換爲Y時拋出警告/錯誤#

壞:

long x = 5; //warning, 5 is an int 
float f = 10;// warning, 10 is an int 


好:

long x = 5L; //correct, no warning 
float f = 10f; //correct, no warning 

編輯:刪除引用錯誤,因爲這是沒有問題的點,是沒有幫助的。

+2

請詳細說明這可能導致的「微妙的錯誤」。 –

+0

想到的主要情況是,雖然只有一點相關,但將整數除法結果賦值給浮點變量;即'double x = 1/2'會給你'x == 0'。 –

+0

@DanBryant:對......但即使有少量經驗的人都知道不會那樣做。這不是微妙的;這是基本的整數算術。 –

回答

1

如果您使用的是Visual Studio Premium +,則可能可以創建一個Code Analysis規則集來在構建期間處理此問題。

您也可以編寫自己的VS.NET extension,並可能與Roslyn進行整合以在編譯器的範圍內詢問代碼。

0

不,這是不可能的。這些由語言規範是合法的。

坦率地說,我甚至都沒有看到你提供的例子可能導致的微妙的錯誤。

相關問題