本帖最后由 张立 于 2012-1-11 16:35 编辑
反射系统源码,其实 Convert.ToString()调用了value.ToString(CultureInfo.CurrentCulture);之后调用了Number.FormatInt32(this, null, NumberFormatInfo.GetInstance(provider));
而i.tostring()调用了Number.FormatInt32(this, null, NumberFormatInfo.CurrentInfo);其实他们没什么区别,最后最后执行的是一个方法。有区别的地方应该是当返回的数据类型中有可能出现null值时如果调用tostring方法了,就会返回NullReferenceException,除非你要捕捉此异常再做处理,否则在这种情况下就应考虑使用Convert.ToString()方法了,因为Convert.ToString(null)不会抛出异常而是返回空字符串.至于说效率从程序步奏上讲,Tostring()的效率略高因为他少了NumberFormatInfo.GetInstance(CultureInfo.CurrentCulture)这一步的操作他的返回值就是 CultureInfo.CurrentCulture
|