Session["ssbmid"]和Session["ssbmid"].TOString()有什么区别! Session["ssbmid"]和Session["ssbmid"].TOString()有什么区别!引用的时候发现他们是不同的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只有当Session["ssbmid"]保存的是字符串的时候它们一样Session["ssbmid"] 可能是一些复杂对象 Session["ssbmid"]是一个对象.而Session["ssbmid"].TOString()只是这个对象的值. Session["ssbmid"]为object类型,可以强制类型转换为某个具体类型。ToString后就变为字符串了。如:Session["ssbmid"] = 123;可以:int i = (int)Session["ssbmid"];或:string s = Session["ssbmid"].ToString();或:int i = int.Parse(Session["ssbmid"].ToString()); Session["ssbmid"] is an ObjectSession["ssbmid"].TOString() is the Value 1.ToString 通常实现为返回与该对象等价的字符串(如果需要类实现者就会重写),根类 Object.ToString 相当于 Object.GetType().ToString(),即返回类型命在楼主的大脑中似乎更倾向于 RefEquals(Object, Object.ToString) == true .但用最本质的例子Object o = new Object();你觉得 o 与 o.ToString() 就指向同一个引用吗?更明显点int num = 100; string strNum = num.ToString(); // 返回字符串 100那么你说 num 与 strNum 这两个对象会引用相等吗,类型显然都是不一样的?3.不知道你是何种类型,但是我想你的疑惑就有可能是简单类型,就这个例子int ssbmid = 100;Session["ssbmid"] = ssbmid; // 装箱string str_ssbmid1 = Session["ssbmid"].ToString(); // 虽然是 object 类型,但多态会调用 Int32.ToString() 方法返回字符串100// 加上验证代码 ->object o_ssbmid = Session["ssbmid"];if(o_ssbmid != null) {string str_ssbmid2 = o_ssbmid.ToString(); // 虽然是 object 类型,但多态会调用 Int32.ToString() 方法返回字符串100}显然 ssbmid 与 str_ssbmid1 是不等的! 最简单的理解就像xiaoqijun说的Session["ssbmid"]是一个对象. Session["ssbmid"].TOString()只是这个对象转换成string类型的值. 也许我理解得太深了,由于我看到了,“引用”两字,我就想到的”引用相等“只要想象 Session[xxx] 返回是 object 类型, Session[xxx].ToString 返回字符串类型,除非该对象本身就是 string 类型,否则怎么可能相等?当然假如是 string ,那么两者一定是相等的,因为 String.ToString() { return this; // 返回自己 }, 也只有此时才可能相等。 无论是否在使用 Session 的情况下,以上讨论成立 Session["ssbmid"]是object类型,Session["ssbmid"].ToString()是它的字符串表现形式。楼主要先确定Session["ssbmid"]不等于空(null)。Session["ssbmid"].ToString()才不会有异常。建议楼主在使用时要用if(Session["ssbmid"]!=null)判断一下。或着将其放到try(){}catch{}里捕获异常。也可以这么使(string)Session["ssbmid"]使用强制转换。 Session["ssbmid"] 是一个Session对象,Object类型Session["ssbmid"].TOString() Session值,string类型 楼主应该问 Object 与 String 有何区别。这样大伙能学更多东西。呵呵。把这个搞清楚了,你的问题就不存在了 TOSTRING只是一个特列吧,不是所有情况都可以这样的 ajax 下拉菜单 C# 截取html代码 TreeView常用代码,如:拖动节点什么的 征集基于asp.net的cms系统以供学习和研究(自己先发几个) 急!!在线等...vs.net2003写的分层的项目,在vs.net2005里面页面层,加载不进来.. 太郁闷了,到底为什么啊? 关于Infragistics NetAdvantage里的webGrid不是正常使用的问题。 给白痴弟弟指条明路吧 跪谢 上海地区招募asp.net开发工程师 急:如何应用ocx控件?? Repeater控件中动态增加控件 為什么在asp.net的aspx頁面上面的div無法响应鼠标事件?
而Session["ssbmid"].TOString()只是这个对象的值.
如:Session["ssbmid"] = 123;
可以:int i = (int)Session["ssbmid"];
或:string s = Session["ssbmid"].ToString();
或:int i = int.Parse(Session["ssbmid"].ToString());
Session["ssbmid"].TOString() is the Value
ToString 通常实现为返回与该对象等价的字符串(如果需要类实现者就会重写),根类 Object.ToString 相当于 Object.GetType().ToString(),即返回类型命在楼主的大脑中似乎更倾向于 RefEquals(Object, Object.ToString) == true .但用最本质的例子Object o = new Object();
你觉得 o 与 o.ToString() 就指向同一个引用吗?更明显点
int num = 100;
string strNum = num.ToString(); // 返回字符串 100那么你说 num 与 strNum 这两个对象会引用相等吗,类型显然都是不一样的?
3.
不知道你是何种类型,但是我想你的疑惑就有可能是简单类型,就这个例子
int ssbmid = 100;
Session["ssbmid"] = ssbmid; // 装箱
string str_ssbmid1 = Session["ssbmid"].ToString(); // 虽然是 object 类型,但多态会调用 Int32.ToString() 方法返回字符串100
// 加上验证代码 ->
object o_ssbmid = Session["ssbmid"];
if(o_ssbmid != null) {
string str_ssbmid2 = o_ssbmid.ToString(); // 虽然是 object 类型,但多态会调用 Int32.ToString() 方法返回字符串100
}
显然 ssbmid 与 str_ssbmid1 是不等的!
Session["ssbmid"]是一个对象. Session["ssbmid"].TOString()只是这个对象转换成string类型的值.
Session["ssbmid"].TOString() Session值,string类型
楼主应该问
Object 与 String 有何区别。这样大伙能学更多东西。呵呵。把这个搞清楚了,你的问题就不存在了