csharp int.ParseとConvert.ToInt32の违い
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp int.ParseとConvert.ToInt32の违い相关的知识,希望对你有一定的参考价值。
namespace DifferenceParseAndConvert
{
using System;
class Program
{
static void Main()
{
//
// ParseメソッドとConvert.ToXXXメソッドの僅かな違い
//
// Parseメソッド、つまり、int.Parseなどのメソッドは
// 解析できない値、つまり、nullを設定すると例外が発生する。
//
// しかし、Convert.ToXXXメソッドはnullを渡しても例外とはならず、処理される。
//
// ただし、どちらの方法でも空文字を指定すると例外が発生する (FormatException)
//
string numberString = "123";
string nullString = null;
string emptyString = string.Empty;
//
// int.Parseメソッド
//
Console.WriteLine("【****** int.Parse ******】");
// 普通の数値文字列は成功
Console.WriteLine(int.Parse(numberString));
try
{
// nullを渡すと当然エラー
Console.WriteLine(int.Parse(nullString));
}
catch (ArgumentNullException nullEx)
{
Console.WriteLine("int.Parse(null) ==> 例外発生, {0}", nullEx.Message);
}
try
{
// 空文字でもエラー
Console.WriteLine(int.Parse(emptyString));
}
catch (FormatException formatEx)
{
Console.WriteLine("int.Parse('') ==> 例外発生, {0}", formatEx.Message);
}
//
// Convert.ToInt32メソッド
//
Console.WriteLine("\n【****** Convert.ToInt32 ******】");
// 普通の数値文字列は成功
Console.WriteLine(Convert.ToInt32(numberString));
// nullを渡すとエラーにならず初期値が返る
Console.WriteLine(Convert.ToInt32(nullString));
try
{
// 空文字を渡すとエラー
Console.WriteLine(Convert.ToInt32(emptyString));
}
catch (FormatException formatEx)
{
Console.WriteLine("Convert.ToInt32('') ==> 例外発生, {0}", formatEx.Message);
}
//
// おまけ:
// int.TryParse
//
Console.WriteLine("\n【****** int.TryParse ******】");
int i1;
int i2;
int i3;
Console.WriteLine(int.TryParse(numberString, out i1));
Console.WriteLine(int.TryParse(nullString, out i2));
Console.WriteLine(int.TryParse(emptyString, out i3));
Console.ReadLine();
}
}
}
以上是关于csharp int.ParseとConvert.ToInt32の违い的主要内容,如果未能解决你的问题,请参考以下文章
Convert.ToInt32()和int.Parse()的区别
int.Parse() 和 Convert To.Int32() 的区别? [复制]
asp.net c# int.Parse 或 Convert.toInt [重复]
更好地使用 int.Parse 或 Convert.ToInt32 [重复]
Convert.ToInt16 或 32 或 64 和 Int.Parse 有啥区别? [复制]
int.Parse()int.TryParse()和Convert.ToInt32()的区别