2012-10-10 24 views
6

मुझे आश्चर्य है कि क्यों कोड विश्लेषण नियम CA1305 - Specify IFormatProvider TryParse विधियों के लिए काम नहीं करता है?विजुअल स्टूडियो 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 में और साथ ही साथ हालिया टूल जैसे सोनारलिंट में भी तय किया गया है।