2012-10-10 30 views
6

我想知道爲什麼代碼分析規則CA1305 - Specify IFormatProvider不適用於TryParse方法?Visual Studio 2010代碼分析CA1305(指定IFormatProvider)規則不適用於TryParse方法

例如與「微軟所有規則」規則集,代碼分析給出了CA1305預警下面的代碼:

static void Main(string[] args) 
{ 
    string text = args[0]; 

    double value = double.Parse(text); 
} 

,但是沒有得到CA1305預警下面的代碼:

static void Main(string[] args) 
{ 
    string text = args[0]; 

    double value; 
    if (!double.TryParse(text, out value)) 
     value = 0; 
} 

我發現這是非常不幸的,因爲如果輸入字符串不可靠,TryParse方法是解析的正確方法。

有沒有人知道TryParse方法的CA1305規則是在某些較新版本的代碼分析工具或某個第三方中實現的?

+0

這裏有一個[連接錯誤](https://connect.microsoft.com/VisualStudio/feedbackdetail/view/788373/code-analysis-rule-ca1305-is-missed-for-tryparse)。 –

回答

0

從FxCop以及SonarLint等最新工具中已經修復了這個問題。

相關問題