最近开始补充基础,自己也理解了不少,还是望大家各述其见
今天开始每天发一贴请教大家~1, string i="2";
    转换  int.Parse(i)  和 (int)i 和 Convert.ToInt32(i) 之间的区别,使用时候需要注意些什么?2, is 和 as   使用上应该注意些什么?     protected void btnClick(object sender,eventargs e)
     {  
            string btnID=((button)sender).ID;
            string btnID=(sender as Button).ID;
            俩句有什么区别? 习惯上使用 as  但是应该如何判断?
     }3,==比较和 equals的区别?

解决方案 »

  1.   

    楼主不知道在哪里看的?string i="2"; 
    (int)i 这样做不对吧?没见过
      

  2.   

    对于
    int.Parse(i)
    Convert.ToInt32(i)单就这样的调用方式(因为它有多个重载),个人认为是一样的
      

  3.   

    2.
    as不是强制转换...当不能转换时,不会抛出异常~
    (button)sender在不能转换时,会抛出异常...
    3.
    有时候equals的性能要好...呵呵...
    好像 == 比较时,有时会创建新的对象?
    一起学习~
      

  4.   

                string btnID=((button)sender).ID; 
                string btnID=(sender as Button).ID; sender as Button,如果sender不是button类型,不会出异常的,只返回null比较常用
    另一个则会出异常
      

  5.   

    同意4楼建议这种问题,楼主还是自己去MSDN上查查,防止大伙误导你
    然后将你学习的结果贴出来,给大伙分享是最好的基础补充方式
      

  6.   

    Equals方法只是在System.Object中定义的一个虚拟方法,它由任何选择执行该任务的类所重写.==运算符是一个可由类重载的运算符.
    ”==”和”Equals”最主要的区别是多态.
    (int)是一种类型转换
    int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。
    Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;
      

  7.   

    —————————————————————————————————————————————
    is运算符检查对象是否与特定的类型兼容
    as运算符用于执行引用类型的显示类型转换,如果不兼容是返回值null;
    —————————————————————————————————————————————
    (button)sender是强制转换,当转换失败时抛出异常,
    sender as button为非强制转换,当转换失败时不会抛出异常;
    —————————————————————————————————————————————
    Equals()方法是虚拟的,因此可以在类中重写,是按值类型来比较对象的,
    ==/!=比较运算符是比较对象是bool类型的;
    —————————————————————————————————————————————