C# 运算符的简化操作(三)

03 is 运算符

e2d29459f6d75815bfc18cce84a05685.png

7e1c231be2e559f52e82cc32d8231bfb.png

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 运算符

aaa316a42bd0cfc66b4201a5053b4168.png

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编程大全   

往期推荐

1909a1410501e74f9aaee1b71cd2a91c.png

Love life,love yourself

关注小编不迷路呦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值