is操作符和as操作符
1、is操作符验证基础类型
public static void Save(object data) { if(data is Person) { Person person = (Person)data; Console.WriteLine("名字是"+person.Name); } else if(data==null) { throw new ArgumentException(nameof(data)); } }
上面代码验证了data的基础类型是否是Person,只有是才会打印名字。
2、使用is操作符进行模式匹配
执行检查,若结果为true就同时将结果赋给新变量
public static void Save(object data) { if(data is Person person) { Console.WriteLine("名字是"+p.Name); } else if(data==null) { throw new ArgumentException(nameof(data)); } }
3、使用as操作符进行转换
as操作符会尝试将对象转换为特定数据类型,若不能转换则会返回null。
public static void Print(Chinese chinese) { Person p = chinese as Person; Console.WriteLine(p.Name); }