C#中As 及Is 的用法

今天一早上网,打开MSN就看到有个CSDN的朋友发出求救信。同时也在CSDN上他发了个贴子。他问的问题是那种最基本的语法知识方面的问题。我真不明白现在的程序员连这一点常识都没有,真不知他是如何混到现在的。

他的问题是:

有这样一段代码:
GroupRadioButton selectRadioButton =
            dgItem.FindControl("selectRadioButton") as GroupRadioButton;
"as GroupRadioButton;" 是什么意思
怎么感觉是VB的写法呢
我试了试int i = 10 as int 编译居然没有错

为什么这样的代码能通过编译。在C#中,所有的东西都是对象。因此10也是一个整型对象。这里用到了as ,那as 是什么呢。他告诉我说在MSDN里找不到关于AS的帮助。说的也是,你在MSDN里的索引里找根本就没有AS的介绍,那到哪去找到帮助呢。其实你只要输入关键字就可以了。找到C#关键字,里面有关于as 及is的用法。

as 运算符类似于类型转换,所不同的是,当转换失败时,as 运算符将产生空,而不是引发异常。在形式上,这种形式的表达式:
expression as type
as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来代替其执行

 

关于is的其实也差不多,只是IS不会帮你进行任何的转换。所以需要自已进行显示转换

is 运算符用于检查对象的运行时类型是否与给定类型兼容。

那么上面的表达式应该这样写了

if(10 is int)

{

int i=(int)10;

}

 

posted @ 2005-03-29 13:20  greystar  阅读(5753)  评论(2编辑  收藏  举报