2012-10-10 8 views
6

Zastanawiam się, dlaczego reguła analizy kodu CA1305 - Specify IFormatProvider nie działa dla metod TryParse?Analiza kodu programu Visual Studio 2010 CA1305 (Określ IFormatProvider) Reguła nie działa dla metod TryParse

Na przykład z reguły podanej '' Microsoft wszystkie reguły, Code Analysis daje ostrzeżenie CA1305 dla następującego kodu:

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

    double value = double.Parse(text); 
} 

ale nie daje ostrzeżenie CA1305 dla następującego kodu:

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

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

I okazało się, że jest to bardzo niefortunne, ponieważ metody TryParse są poprawnym sposobem na parsowanie, jeśli ciąg wejściowy nie jest wiarygodny.

Czy ktoś wie, czy reguła CA1305 dla metod TryParse jest zaimplementowana w nowszej wersji narzędzia do analizy kodu lub przez inną firmę zewnętrzną?

+0

Jest to [Połącz błąd] (https://connect.microsoft.com/VisualStudio/feedbackdetail/view/788373/code-analysis-rule-ca1305-is-missed-for-tryparse). –

Odpowiedz

0

Zostało to poprawione w FxCop, a także w nowszych narzędziach, takich jak SonarLint.

Powiązane problemy