隐式转换 显示转换 强制转换的区别我这样理解可以吗:
隐式转换和显示转换是同类型之间的转换
而强制转换是不同类型之间显示转换
谢谢

解决方案 »

  1.   

    MyClass myclass=new MyClass();
    //......object o=myclass;
    MyClass obj=(MyClass)myclass;//这样肯定不会有错~~int n=(int)obj;//...如果MyClass预先定义了这样的转换支持,那么这样未必会出错~~
    这样说吧
    (int)obj的装换方式可以转换2个完全不同类型的实例,但是你定义类的时候要多写些必要的代码而as的转换则是用来转换彼此继承的类的关系的~~
      

  2.   

      sbyte,short,int,long,float,double`````````````````从左往右所表示的范围依次争大```````````  左边类型换成右边类型的称为:隐式转换```比如:
                                                     int a = 10;
                                               long b = 0;
                                               b = a;  右边类型换成左边类型的称为:显式转换```显式转换需要强制转换 比如:
                                                     int a = 10;
                                               long b = 0;
                                               a = (int) b;
      

  3.   

    object   o=myclass; 
    MyClass   obj=(MyClass)o;//这样肯定不会有错~~ 这样才对~呵呵~~
      

  4.   


    隐式转换   就像是int 自动转化为float 型的
    强制转换   是float/string 或其他转化为 int型或其他类型
    用Convert.To(Int32/String等等) 
    直接转化string类型也可在 数楼直接加.ToString();
    例如 
    string str = "";
    int a = 10;
    str = a.ToString();好像是这样吧````我是新手 如果有什么错的话 别埋汰我 也给我指教一下哈~~ 谢谢 嘿嘿 ^~^
       
     
      

  5.   

    类型转换就隐式转换和显示转换两种,这两种转换只要涉及到一方是自定义类,都可以通过重载操作符自己定义,你让它是显式他就显式,让它隐式就隐式。如果两种类型都是微软内置的类型,就要看微软当时的定义了,微软认为转换后不会引起数据丢失的转换,就定义为隐式的,例如 int i=1; long l=i;  微软认为可能会引起数据丢失的转换,就定义为显式的了例如 long l=1L; int i=(int)l; 如果要检查是否引起了丢失,可以用 long l=long.MaxValue;int i=checked((int)l); 检查。这么做的目的很明显,安全第一,丢了数据你也赖不到微软头上。