2009-04-02 19 views

Odpowiedz

11

Oczywiście

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

Może chcieć "zwrócić True" gdzieś w tym? – Pondidum

+0

@Pondidum: Dobre połączenie! Dzięki. –

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

Czy nie rzuca wyjątek/obsługa stworzenia sprawiedliwego trochę głową chociaż? –

1

Koistya prawie miał. Brak polecenia var w .NET 1.1.

Jeśli mogę być tak śmiały:

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

Jest tryparse dla podwójnie, więc jeśli używasz, że należy wybrać opcję „NumberStyles.Integer” i sprawdzić, czy powstały podwójne jest w granicach Int32, możesz określić, czy ciąg znaków jest liczbą całkowitą bez rzucania wyjątku.

nadzieję, że to pomaga, Jamie

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; 
    } 
} 
Powiązane problemy