利用C#9.0新语法如何提升if语句美感

 更新时间:2020年12月8日 11:34  点击:1726

前言

C# 语言一贯秉承简洁优美的宗旨,每次升级都会带来一些语法糖,让我们可以使代码变得更简洁。本文分享两个使用 C# 9.0 提升 if 语句美感的技巧示例。

使用属性模式代替 IsNullOrEmpty

在任何你使用 IsNullOrEmpty 的时候,可以考虑这样替换:

string? hello = "hello world";
hello = null;

// 旧的方式
if (!string.IsNullOrEmpty(hello))
{
 Console.WriteLine($"{hello} has {hello.Length} letters.");
}

// 新的方式
if (hello is { Length: >0 })
{
 Console.WriteLine($"{hello} has {hello.Length} letters.");
}

属性模式相当灵活,你还可以把它用在数组上,对数组进行各种判断。比如判断可空字符串数组中的字符串元素是否为空或空白:

string?[]? greetings = new string[2];
greetings[0] = "Hello world";
greetings = null;

// 旧的方式
if (greetings != null && !string.IsNullOrEmpty(greetings[0]))
{
 Console.WriteLine($"{greetings[0]} has {greetings[0].Length} letters.");
}

// 新的方式
if (greetings?[0] is {Length: > 0} hi)
{
 Console.WriteLine($"{hi} has {hi.Length} letters.");
}

刚开始你可能会觉得阅读体验不太好,但用多了看多了,这种简洁的方法更有利于阅读。

使用逻辑模式简化多重判断

对于同一个值,把它与其它多个值进行比较判断,可以用 or 、and 逻辑模式简化,示例:

ConsoleKeyInfo userInput = Console.ReadKey();

// 旧的方式
if (userInput.KeyChar == 'Y' || userInput.KeyChar == 'y')
{
 Console.WriteLine("Do something.");
}

// 新的方式
if (userInput.KeyChar is 'Y' or 'y')
{
 Console.WriteLine("Do something.");
}

之前很多人不解 C# 9.0 为什么要引入 or 、and 逻辑关键字,通过这个示例就一目了然了。

后面还会继续分享一些 C# 9.0 的新姿势,也期待你的分享。

总结

到此这篇关于利用C#9.0新语法如何提升if语句美感的文章就介绍到这了,更多相关C#9.0新语法提升if语句内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • C#中if语句使用概述

    这里介绍C#使用if语句,C#使用if语句中的表达式必须放在一对圆括号中。除此之外,表达式必须是布尔表达式...2020-06-25
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • C#条件语句、循环语句(if、while)

    这篇文章主要介绍了C#条件语句、循环语句(if、while)的用法,学习c#的朋友可以参考下...2020-06-25
  • c# 循环语句的使用方法

    这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • Mysql 原生语句中save or update 的写法汇总

    背景  在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢?  ...2015-03-15
  • jquery if条件语句的写法

    下面小编就为大家带来一篇jquery if条件语句的写法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
  • 如何利用JavaScript编写更好的条件语句详解

    这篇文章主要给大家介绍了关于如何利用JavaScript编写更好的条件语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-10
  • C#实现String字符串转化为SQL语句中的In后接的参数详解

    在本篇文章中小编给大家分享的是一篇关于C#实现String字符串转化为SQL语句中的In后接的实例内容和代码,需要的朋友们参考下。...2020-06-25
  • Python基础之循环语句相关知识总结

    今天给大家带来的是关于Python基础的相关知识,文章围绕着Python循环语句展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...2021-06-15
  • linux shell中 if else以及大于、小于、等于逻辑表达式介绍

    在linux shell编程中,大多数情况下,可以使用测试命令来对条件进行测试,这里简单的介绍下,方便需要的朋友...2020-07-11
  • Lua流程控制语句if else的使用示例

    今天小编就为大家分享一篇关于Lua流程控制语句if else的使用示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-30
  • Nginx中if语句的判断条件与多条件判断详解

    这篇文章主要介绍了关于Nginx中if语句的判断条件与多条件判断的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-07-06
  • SQL语句中的一些参数如何用变量来代替?

    可以采用exec方法 declare @tempStr varchar(350) select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' convert(varchar,@week) '] 1 where us...2016-11-25
  • 怎样用PS制作GIF雪糕

    本文为大家带来gif雪糕的制作方法,难度不大,可效果很漂亮哦,关注一聚教程网学起来! 步骤: 1、使用AI新建一个1200*800的画布 2、使用矩形工具创建一个宽为250px,高度不...2016-12-21
  • Thymeleaf中th:each及th:if使用方法解析

    这篇文章主要介绍了Thymeleaf中th:each及th:if使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-01
  • 一篇文章带你了解JavaScript-语句

    这篇文章主要介绍了JavaScript的基本语句,包括注释和书写格式等基本知识,需要的朋友可以参考下,希望本篇文章能给您带来帮助...2021-08-15
  • Window.Open打开窗体和if嵌套代码

    这篇文章主要介绍了Window.Open打开窗体和if嵌套代码的相关资料,需要的朋友可以参考下...2016-04-18
  • C++函数中return语句的使用方法

    C++中的return语句是函数中一个重要的语句,return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数,需要的朋友可以了解下...2020-04-25
  • VC++的if语句应用范围分析

    这篇文章主要介绍了VC++的if语句应用范围分析,对VC++初学者有很好的参考学习价值,需要的朋友可以参考下...2020-04-25
  • 详细谈谈JavaScript中循环之间的差异

    JS循环语句也叫迭代语句,是一种特殊的语句,主要用于需要多次执行的代码块,下面这篇文章主要给大家介绍了关于JavaScript中循环之间的差异的相关资料,需要的朋友可以参考下...2021-08-23