当然不一样了,见MSDN参数
value类型:System.Object
一个对象,用于提供要转换的值,或 null。返回值
类型:System.String
value 的字符串表示形式,如果 value 为 null,则为 String.Empty。备注转换 value 成字符串表示,此方法尝试调用value 的 IConvertible.ToString 实现。 如果 value 未实现该IConvertible 接口,则此方法尝试调用IFormattable.ToString 的 value 实现。 如果值类型未实现 IFormattable 接口,则此方法将调用 value的基础类型的 ToString方法。
value类型:System.Object
一个对象,用于提供要转换的值,或 null。返回值
类型:System.String
value 的字符串表示形式,如果 value 为 null,则为 String.Empty。备注转换 value 成字符串表示,此方法尝试调用value 的 IConvertible.ToString 实现。 如果 value 未实现该IConvertible 接口,则此方法尝试调用IFormattable.ToString 的 value 实现。 如果值类型未实现 IFormattable 接口,则此方法将调用 value的基础类型的 ToString方法。
举一个常见的例子,就是平常的网页参数传递,比如在网页登录验证中从QueryString或当前会话Session中获得对应参数值,我们有下面两种方法:
1.使用Convert.ToString(param)方法:
string strUserName = Convert.ToString(Session["UserName"]);
string strUserPwd = Convert.ToString(Session["UserPwd"]);
2.直接调用ToString()方法:
string strUserName = Session["UserName"].ToString;
string strUserPwd = Session["UserPwd"].ToString;
当Session["UserName"]或Session["UserPwd"]返回null值时,使用方法1返回的值是空字符串,而直接调用ToString()方法则会抛出NullReferenceException,你可以根据自己的实际需要来决定使用哪一个方法更合适。
//Convert
public static string ToString(Object value) {
return ToString(value,null);
}
public static string ToString(Object value, IFormatProvider provider) {
IConvertible ic = value as IConvertible;
if (ic != null)
return ic.ToString(provider);
IFormattable formattable = value as IFormattable;
if (formattable != null)
return formattable.ToString(null, provider);
return value == null? String.Empty: value.ToString();
}
public static String ToString(String value,IFormatProvider provider) {
Contract.Ensures(Contract.Result<string>() == value); // We were always skipping the null check here.
return value; // avoid the null check
}