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

 更新时间:2020年11月06日 09:56:35   作者:精致码农 • 王亮  
这篇文章主要给大家介绍了关于利用C# 9.0新语法如何提升if语句美感的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

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语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#基础教程之IComparable用法,实现List<T>.sort()排序

    C#基础教程之IComparable用法,实现List<T>.sort()排序

    这篇文章主要介绍了C#的一些基础知识,主要是IComparable用法,实现List<T>.sort()排序,非常的实用,这里推荐给大家。
    2015-02-02
  • C# Winform使用log4net进行日志记录

    C# Winform使用log4net进行日志记录

    Log4Net是从Java的log4j移植过来的,功能也与log4j类似,可以把日志信息输出到文件、数据库等不同的介质或目标,下面我们就来学习一下如何使用log4net进行日志记录吧
    2023-11-11
  • 一篇文章教会你用Unity制作网格地图生成组件

    一篇文章教会你用Unity制作网格地图生成组件

    网格地图这个功能在策略型游戏中应用比较广泛,基本情况下会将地图分割成正方形网格或者六边形网格,这篇文章主要给大家介绍了如何通过一篇文章学会用Unity制作网格地图生成组件的相关资料,需要的朋友可以参考下
    2021-08-08
  • C#中Arraylist的sort函数用法实例分析

    C#中Arraylist的sort函数用法实例分析

    这篇文章主要介绍了C#中Arraylist的sort函数用法,较为详细的分析了ArrayList的sort函数的功能、定义及具体使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • C#连接Oracle数据库的方法

    C#连接Oracle数据库的方法

    这篇文章主要介绍了C#连接Oracle数据库的方法,实例分析了C#连接Oracle数据库的方法与主要实现技巧,需要的朋友可以参考下
    2015-06-06
  • C#页面之间跳转功能的小结

    C#页面之间跳转功能的小结

    在两个ASP.NET页面之间传递值
    2013-03-03
  • C#中FileSystemWatcher的使用教程

    C#中FileSystemWatcher的使用教程

    这篇文章主要给大家介绍了关于C#中FileSystemWatcher使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • C#中float的取值范围和精度分析

    C#中float的取值范围和精度分析

    这篇文章主要介绍了C#中float的取值范围和精度,较为详细的分析了float的取值范围与表示方法及精度等概念,有助于深入了解C#数据类型,需要的朋友可以参考下
    2014-11-11
  • C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法

    C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法

    本文主要介绍了C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法:利用反射,读取一个类型的所有属性,然后再把属性转换成XML元素的属性或者子元素。下面注释比较完整,需要的朋友可以看下
    2016-12-12
  • C# 实现拖拉控件改变位置与大小的方法

    C# 实现拖拉控件改变位置与大小的方法

    下面小编就为大家分享一篇C# 实现拖拉控件改变位置与大小的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01

最新评论