Session["ssbmid"]和Session["ssbmid"].TOString()有什么区别!引用的时候发现他们是不同的!

解决方案 »

  1.   

    只有当Session["ssbmid"]保存的是字符串的时候它们一样Session["ssbmid"] 可能是一些复杂对象
      

  2.   

    Session["ssbmid"]是一个对象.
    而Session["ssbmid"].TOString()只是这个对象的值.
      

  3.   

    Session["ssbmid"]为object类型,可以强制类型转换为某个具体类型。ToString后就变为字符串了。
    如:Session["ssbmid"] = 123;
    可以:int i = (int)Session["ssbmid"];
    或:string s = Session["ssbmid"].ToString();
    或:int i = int.Parse(Session["ssbmid"].ToString());
      

  4.   

    Session["ssbmid"] is an Object
    Session["ssbmid"].TOString() is the Value
      

  5.   

    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 是不等的!
      

  6.   

    最简单的理解就像xiaoqijun说的
    Session["ssbmid"]是一个对象. Session["ssbmid"].TOString()只是这个对象转换成string类型的值.
      

  7.   

    也许我理解得太深了,由于我看到了,“引用”两字,我就想到的”引用相等“只要想象 Session[xxx] 返回是 object 类型, Session[xxx].ToString 返回字符串类型,除非该对象本身就是 string 类型,否则怎么可能相等?当然假如是 string ,那么两者一定是相等的,因为 String.ToString() { return this; //  返回自己 }, 也只有此时才可能相等。
      

  8.   

    无论是否在使用 Session 的情况下,以上讨论成立
      

  9.   

    Session["ssbmid"]是object类型,Session["ssbmid"].ToString()是它的字符串表现形式。楼主要先确定Session["ssbmid"]不等于空(null)。Session["ssbmid"].ToString()才不会有异常。建议楼主在使用时要用if(Session["ssbmid"]!=null)判断一下。或着将其放到try(){}catch{}里捕获异常。也可以这么使(string)Session["ssbmid"]使用强制转换。
      

  10.   

    Session["ssbmid"] 是一个Session对象,Object类型
    Session["ssbmid"].TOString() Session值,string类型
      

  11.   


    楼主应该问 
    Object  与 String 有何区别。这样大伙能学更多东西。呵呵。把这个搞清楚了,你的问题就不存在了
      

  12.   

    TOSTRING只是一个特列吧,不是所有情况都可以这样的