Parse , Covert.To,TryParse类型转换

parse Covert.To 都能把有效的数据转化成相应的格式,但在实际情况中什么时候用parse 和什么时候用Convert.To 这个一直都很模糊。

下面是 Int32.Parse(string) Convert.ToInt32 反射出来的代码

Int32.Parse(string)

public   static   int  Parse( string  s)
{
  
return int.Parse(s, NumberStyles.Integer, null);
}


public   static   int  Parse( string  s, NumberStyles style, IFormatProvider provider)
{
  NumberFormatInfo info1 
= NumberFormatInfo.GetInstance(provider);
  NumberFormatInfo.ValidateParseStyle(style);
  
return Number.ParseInt32(s, style, info1);
}


Convert.ToInt32

public   static   int  ToInt32( string  value)
{
  
if (value == null)
  
{
    
return 0;
  }

  
return int.Parse(value);
}


从代码中能看出的一个最明显的差别:

1.       Convert.ToInt32 () 方法是调用了 int.Parse()方法

2.        Convert.ToInt32 string null的时候不会抛 System.ArgumentNullException 类型的异常

从安全上面来说, Convert.ToInt32 int.Parse上面更安全点,但是从执行的速度上面,parse 要比Convert.ToInt32 要快一些。但是在出现System.FormateExceptionSystem.OverflowException 异常的时候,Convert.ToInt32 int.Parse 都没有什么方法避免,出现异常之后, 速度上面一样会降下来。我们这个时候需要捕获异常,然后在处理。

还好.net 2.0之后, 出来了一个TryParse()的方法,

public static bool TryParse(string s, out int result);

如果转化成功, 返回实际的结果,如果类型转化失败, 返回0;这样在类型的转换过程中,就不会出现异常,这个比Parse和Convert都要好,而且在执行的速度上面要比Convert要快。 所以我们在实际的使用中最好是用TryParse 方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值