先看一段代码:string name = null;
Session["name"] = name;
string out1 = Convert.ToString(name);
string out2 = Convert.ToString(Session["name"]);你们觉得out1与out2应该是输出什么?是null值?还是空字符串?
嘿嘿,都不是,out1输出null,our2输出空字符串。
看看MS的代码就知道了:
public static string ToString(string value)
{
return value;
}
public static string ToString(object value)
{
return Convert.ToString(value, (IFormatProvider) null);
}
public static string ToString(object value, IFormatProvider provider)
{
IConvertible convertible1 = value as IConvertible;
if (convertible1 != null)
{
return convertible1.ToString(provider);
}
if (value != null)
{
return value.ToString();
}
return string.Empty;
}
其它一些以基元类型值类型做参数的都是直接调用其.ToString方法,因为值类型不能为null。这不是一个大的Bug,不过却应该算是一个Bug。毕竟这违反了重载的一致性。
Session["name"] = name;
string out1 = Convert.ToString(name);
string out2 = Convert.ToString(Session["name"]);你们觉得out1与out2应该是输出什么?是null值?还是空字符串?
嘿嘿,都不是,out1输出null,our2输出空字符串。
看看MS的代码就知道了:
public static string ToString(string value)
{
return value;
}
public static string ToString(object value)
{
return Convert.ToString(value, (IFormatProvider) null);
}
public static string ToString(object value, IFormatProvider provider)
{
IConvertible convertible1 = value as IConvertible;
if (convertible1 != null)
{
return convertible1.ToString(provider);
}
if (value != null)
{
return value.ToString();
}
return string.Empty;
}
其它一些以基元类型值类型做参数的都是直接调用其.ToString方法,因为值类型不能为null。这不是一个大的Bug,不过却应该算是一个Bug。毕竟这违反了重载的一致性。
变成了:
object name = null;
Session["name"] = name;
string out1 = Convert.ToString(name);
string out2 = Convert.ToString(Session["name"]);
Session["name"] = name;
string out1 = Convert.ToString(name);
string out2 = Convert.ToString(Session["name"]);
//**************************************
string name = null;
字浮型的能這樣初始化的嗎???
你用到關鍵字了:)
String str = String.Empty;
学习中的乐趣====CSDN 小助手 V2.0 2005年10月16日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
拒绝日货。
你给name赋值null,输出当然是null...
而你给Session["name"]赋值了一个空对象,也就是说Session["name"]已经存在了,只是它指向的对象为空,当然输出为空字串了...这算什么bug...