最近写程序要用到这个,需要转换类型,有几种方法,object ob = null;第一种 ob.tostring();
第二种:(string)ob,转化为int也有两种,Int32.parse(ob.tostring()),(int)ob.
可ob为空和有值时,上面的转化有时会异常出错。
想请问下上面几种方法的区别,及有没有其他我没写出来的转换方式。

解决方案 »

  1.   

    对于string类型的,使用as    
    object o = “ss”;
    string s = o as string;
    if(s != null)
    {
    //你的代码
    }因为as不能处理整形之类的,所以int型你还是要自己判断一下
      

  2.   

    as是安全的转换,并且不会抛出异常,如果不能完全转换成指定的类型,就会变成null
    所以你只需要判断一下你需要赋值的变量是否为空就可以完全保证安全了。
    正因为如果不能转换就会返回null,所以int等等这些不支持null的类型,不能使用as
      

  3.   

    第一种 ob.tostring(); 
    -------------------
    调用ToString()方法转换为字符串,因为所有类都从object类派生,而object类又提供了一个默认实现,所以,不管是值类型,还是引用类型,都可以使用此方法转换为字符串,如果这个默认实现转换的结果可能不是你所需要的,可以在类中重写这个方法,提供更有用的信息。第二种:(string)ob
    -----------------------
    这个是强转,需要被强转的对象的真实类型是该类型或者是该类型的继承树中的类型,否则会出异常。int的情况类似,int.Parse需要被转换的字符串应该是数字形式。