问一下大家 as的作用是做什么的啊 ,例如:
Label li = this.FindControl("Label1") as Label;
        li.Text = Session["username"].ToString();

解决方案 »

  1.   

    as 运算符用于在兼容的引用类型之间执行某些类型的转换。
    http://msdn.microsoft.com/zh-cn/library/cscsdfbt.aspx
      

  2.   

    FindControl 返回的是一个 Control类对象,如果它是Label,这样就可以直接转为 Label对象, 可以参看一下 <Effective C#> 原则3:选择is或者as操作符而不是做强制类型转换 
      

  3.   

    http://topic.csdn.net/u/20110506/01/cfd1b078-6b40-4da2-ad53-8c1da70c5838.html
      

  4.   

    里氏替换原则中两项重要技术之一。一、is
        用于判断当前成员是否与提供成员的类型一致。
    二、as
        相当于强制转换,但是as不同的是,如果转换不成功的话,不会发生异常。而会产生一个null.
      

  5.   

    强类型转换,果转换不成功的话,不会引发异常,而会赋一个null值但如果对null进行操作则还是会产生异常了
      

  6.   

    另外值得注意的是,值类型不可以使用as操作符,很简单,因为值类型不可以为null
      

  7.   

    嗯强制类型转换吧。如果我用就会直接Label li = (Label)this.FindControl("Label1") ;
    嘿嘿,见效了
      

  8.   

    我写过一个让“马”的实例对象转换为“香蕉”的实例对象的例子:http://s.yanghao.org/program/viewdetail.php?i=32556
      

  9.   

    所以就lz这个例子,不能用一句“强制类型转换”来随随便便地解释。它主要还是想突出:让变量li为(当转换失败时)null,而不抛出异常,这个作用。
      

  10.   

    强制类型转换,转换不成功的话,返回null.
      

  11.   

    正好学习了~~~~as 运算符类似于强制转换操作。 但是,如果无法进行转换,则 as 返回 null 而非引发异常。 请看下面的表达式:expression as type
    它等效于以下表达式,但只计算一次 expression。expression is type ? (type)expression : (type)null
    注意,as 运算符只执行引用转换和装箱转换。 as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用强制转换表达式来执行。