c#中as操作符的用法是怎样的?与is操作符有什么区别么?作者: 邬长星 时间: 2014-1-21 22:25
c# 中 is和as 操作符是用来进行强制类型转换的
is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常。
as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回null作者: 许庭洲 时间: 2014-1-22 07:39
//////////////////////////////////////////////////////////////////////////////////////
Chinese ch =new Chinese();
//隐式转换,把子类变量赋给父类变量
Person p = ch;
//显示转换,把父类变量值赋值给子类变量
Person p = new Chinese();
Chinese ch = (Chinese)p;
//如果对象不在同一个继承树路径上则不能强制类型转换
Dog g = new Dog();
Chinese ch =(Chinese)g;//错误
//is 运算
if(p is Chinese)
{
Console.WriteLIne("中国人“);
}
else if(p is Korean)
{
Console.WriteLine("韩国人");
}
///////////////////////////////////////////////////////////////////////////////////////////////////
//as运算符
Chinese ch = p as Chinese;
if(ch!=null)
{
Console.WriteLine("中国人");
}
Korean ch= p as Korean;
if(ch!=null)
{
Console.WriteLine("韩国人”);
} 作者: 沈可 时间: 2014-1-22 15:02 本帖最后由 沈可 于 2014-1-22 15:04 编辑