2009-04-02 13 views
7

के लिए int.TryParse का सबसे अच्छा विकल्प क्या है .net 1.1 का उपयोग कर int.TryParse (जो .net 2.0 में पाया जाता है) के बराबर करने का सबसे अच्छा तरीका क्या है।.NET 1.1

उत्तर

11

जाहिर है,

class Int32Util 
{ 
    public static bool TryParse(string value, out int result) 
    { 
     result = 0; 

     try 
     { 
      result = Int32.Parse(value); 
      return true; 
     } 
     catch(FormatException) 
     {    
      return false; 
     } 

     catch(OverflowException) 
     { 
      return false; 
     } 
    } 
} 
+0

शायद उसमें कहीं भी सही 'वापस लौटना चाहते हैं? – Pondidum

+0

@ पांडिडम: अच्छा कॉल! धन्यवाद। –

2
try 
{ 
    var i = int.Parse(value); 
} 
catch(FormatException ex) 
{ 
    Console.WriteLine("Invalid format."); 
} 
+1

करता है नहीं अपवाद फेंक/हालांकि भूमि के ऊपर का एक उचित बिट बनाने से निपटने? –

1

Koistya लगभग यह था। .NET 1.1 में कोई var कमांड नहीं।

मैं इतना बोल्ड हो सकती है:

try 
{ 
    int i = int.Parse(value); 
} 
catch(FormatException ex) 
{ 
    Console.WriteLine("Invalid format."); 
} 
1

डबल के लिए एक TryParse नहीं है, इसलिए यदि आप का उपयोग करें, "NumberStyles.Integer" विकल्प का चयन करें और जांचें कि जिसके परिणामस्वरूप डबल की सीमाओं के भीतर है Int32, आप यह निर्धारित कर सकते हैं कि क्या आप स्ट्रिंग एक अपवाद फेंकने के बिना एक पूर्णांक है।

आशा है कि यह मदद करता है, जेमी

private bool TryIntParse(string txt) 
{ 
    try 
    { 
     double dblOut = 0; 
     if (double.TryParse(txt, System.Globalization.NumberStyles.Integer 
     , System.Globalization.CultureInfo.CurrentCulture, out dblOut)) 
     { 
      // determined its an int, now check if its within the Int32 max min 
      return dblOut > Int32.MinValue && dblOut < Int32.MaxValue; 
     } 
     else 
     { 
      return false; 
     } 
    } 
    catch(Exception ex) 
    { 
     throw ex; 
    } 
} 
संबंधित मुद्दे