as 运算符将表达式结果显式转换为给定的引用或可以为 null 值的类型。 如果无法进行转换,则 as 运算符返回 null。 与强制转换表达式不同,as 运算符永远不会引发异常。
E as T
其中,E 是返回值的表达式;T 是类型或者类参的名称。下面语句结果相同:
E is T ? (T)(E) : (T)null
as 运算符仅考虑引用、可以为 null、box(装箱)和 unbox(拆箱)转换。 不能使用 as 运算符执行用户定义的转换。

        {
            IEnumerable<int> MJzhss = [10 , 20 , 30]; // 定义一个可枚举的整数集合
            IList<int>? LieBiao = MJzhss as IList<int>; // 将枚举集合转换为列表
            if ( LieBiao != null )
                {
                Console . WriteLine ( LieBiao [ 0 ] + LieBiao [ LieBiao . Count - 1 ] ); // 输出 40(10 + 30)
                }
        }

你需要测试 as 转换结果是否为 null(即转换不成功)。或者使用 is 运算符检验结果,成功的话可以把结果分配给一个新变量。


兔子码农
2 声望1 粉丝

一个酒晕子