2009-05-02 32 views

答えて

5

Convert.ToInt32(string)Int32.Parse(string)は、文字列が実際にnullであるときを除いて、同一の結果を得ます。この場合

Int32.Parse(null)はゼロを返すConvert.ToInt32(null)ArgumentNullException

をスローしかし。

だから、Int32.Parse(string)

+6

どちらが良いかは、実際にはあなたのニーズによります。 – Joey

1

Int.Parseを(使用することをお勧めします)は、解析しようともあなたも、パラメータを指定して解析できる形式

Int.Parse(String, NumberStyles) 

を受け入れることができますだけで表示する場合はtrueまたはfalseを返します解析が成功したかどうか

1

intを変換する必要がある場合は、3つのオプションがあります。

int.Parse 
Convert.ToInt32 
int.TryParse 

3つのうち、最も良い解決策は、通常、int.TryParseです。これらの3つの違いは、速度と信頼性の両方です。

  • int型以外の値がそれに 渡された場合int.Parseは例外をスローします。一般的な経験則では、例外は低速です。

  • Convert.ToInt32はnullを処理し、0を返しますが、 は他の入力に対して例外をスローします。もう一度、例外は遅いです。

  • int.TryParseはほとんどすべての入力を処理します。渡された引数が変換されたかどうかによって、trueまたは
    falseが返されます。 の結果がfalseの場合、変換されたintは0です。結果がtrueの場合、 intが変換され、変換されたintが返されます。

私は何でもint.Parseを使用しません。私の入力が正しいと確信していて、何らかの形式のバリデーションがあった場合は、Convert.ToInt32を使用して余分な行を入力する必要がなくなりました。他のすべての状況では、私はそれぞれのint.TryParse

構文を使用します。

int result; 
boolean success; 

result = int.Parse(null) = Exception 
result = Convert.ToInt32(null) = 0 
success = int.TryParse(null, out result) = False/0 

result = int.Parse("asd") = Exception 
result = Convert.ToInt32("asd") = Exception 
success = int.TryParse("asd", out result) = False/0 
関連する問題