is 和 as 运算符

is和as运算符:
is是判断是否是某个类型,返回true或false
o as Ren; 如果转换成功了,没问题;as 是用来转换
如果没转换成功,不会报出错误,而是返回一个null值

实例化一个集合,将里面放进一个自己写的类的方法:

此写法是错误写法,只是在这里举例一下is和as的用意及用法(借用了做接口时的项目代码,主要部分在下面遍历集合)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList arr = new ArrayList();//实例化一个集合
 
            //实例化一下ren就可以使用到所有类的方法
            ren sc = new ren();
 

            Random ran = new Random();

            arr.Add(sc);//将类里面自己写的方法放进集合
            arr.Add(ran);

            foreach (object o in arr) //打印一下这个集合,因为不知道ren里面的数据类型,需要转换
            {
                if (o is ren) //判断如果o是ren这个类型,这里用到is,判断是不是,返回true或false
                {
                    ren scc = o as ren;//将o转换为ren这个类型,这里用到as转换,如果转换失败,会返回一个null,空值
                }                      //防止程序崩溃,如果用其他类型强转容易导致程序崩溃
            }
            Console.ReadLine();
        }
    }
}
原文地址:https://www.cnblogs.com/zyg316/p/5599147.html