03 is 运算符
is 运算符可以检查对象是否与特定的类型兼容。短语 “ 兼容 ” 表示对象或者是该类型,或者派生自该类型。例如,要检查变量是否与 object 类型兼容,可以使用下面的代码:
int i =10;
if ( i is object )
{
Console.WriteLine("i is an object");
}
“
int 和所有 C#数据类型一样,也从 object 继承而来;在本例中,表达式 i is object 将为 true,并显示相应的消息。
C#7 扩展了具有类型匹配的 is 运算符。可以检查常量、类型和 var。下面的代码片段显示了常量检查的示例,它检查常量 42 和常量 null:
int i = 42;
if (i is 42)
{
Console.WriteLine("i has the value 42");
}
object o = null;
if (o is null)
{
Console.WriteLine("o is null");
}
”
使用具有类型匹配的 is 运算符,可以在类型的右边声明变量。如果 is 运算符返回true,则该变量通过对该类型的对象的引用来填充。然后,可以在使用 is 运算符的 if语句范围内使用该变量:
public static void AMethodUsingPatternMatching(object o)
{
if (o is Person p)
{
Console.WriteLine($"o is a Person with firstname {p.FirstName}");
}
}
//...
AMethodUsingPatternMatching (new Person("Katharina", "Nagel"));
04 as 运算符
as 运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,as 运算符就会返回 null 值。如下面的代码所示,如果 object 引用实际上不引用 string 实例,把 object 引用转换为 string 就会返回 null:
object ol = "Some String";
object o2 = 5;
string s1 = ol as string; // sl = "Some string"
string s2 = o2 as string; // s2 = null
as 运算符允许在一步中进行安全的类型转换,不需要先使用 is 运算符测试类型,再执行转换。
技术群: 需要进技术群学习交流的请添加小编微信,切记备注:加群,对以上内容有什么疑问也可以直接和小编直接沟通交流!
小编微信:mm1552923
公众号:dotNet编程大全
往期推荐
Love life,love yourself
关注小编不迷路呦~