利用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#中使用委托的3种方式代码示例

    C#中使用委托的3种方式代码示例

    这篇文章主要介绍了C#中使用委托的3种方式代码示例,本文直接给出代码实例,没有相关的说明解释,需要的朋友可以参考下
    2015-03-03
  • C#调用百度翻译实现翻译HALCON的示例

    C#调用百度翻译实现翻译HALCON的示例

    HALCON示例程序的描述部分一直是英文的,看起来很不方便。本文就使用百度翻译实现翻译HALCON,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • C#实现剪切板功能

    C#实现剪切板功能

    这篇文章主要为大家详细介绍了C#实现剪切板功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例

    使用C#实现基于TCP和UDP协议的网络通信程序的基本示例

    这篇文章主要介绍了使用C#实现基于TCP和UDP协议的网络通信程序的示例,文中分别编写了基本的服务器端和客户端,代码十分简单,需要的朋友可以参考下
    2016-04-04
  • C# webclient中文乱码问题解决方法

    C# webclient中文乱码问题解决方法

    本文介绍使用webclient抓取远程页面出现乱码的处理方法,希望对大家有所帮助。
    2016-05-05
  • C#抓取当前屏幕并保存为图片的方法

    C#抓取当前屏幕并保存为图片的方法

    这篇文章主要介绍了C#抓取当前屏幕并保存为图片的方法,实例分析了C#操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#调用HTTP POST请求上传图片的示例代码

    C#调用HTTP POST请求上传图片的示例代码

    现在很多B/S系统的开发都是通过API方式来进行的,一般服务端会开放一个API接口,客户端调用API接口来实现图片或文件上传的功能,感兴趣的可以了解一下
    2021-05-05
  • C#中enum和string的相互转换

    C#中enum和string的相互转换

    这篇文章主要介绍了C#中enum和string的相互转换的相关资料,需要的朋友可以参考下
    2017-09-09
  • C#的WEBBROWSER与JS交互小结

    C#的WEBBROWSER与JS交互小结

    这篇文章主要介绍了C#的WEBBROWSER与JS交互方法,详细讲述了与页面标签的交互以及数据交互的方法,需要的朋友可以参考下
    2014-11-11
  • C#实现二叉查找树

    C#实现二叉查找树

    本文详细讲解了C#实现二叉查找树的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04

最新评论