C# 为什么高手都是用IsNullOrWhiteSpace对字符串判空?

判断字符串为空有好几种方法:

方法一: 代码如下:

static void Main(string[] args){string str = "";if (str == ""){Console.WriteLine("a is  empty"); ;}Console.ReadKey();}

运行结果:a is empty

aad3c526938dc23c749c4a5bc622b182.png

这样针对str = ""也是可以的,但是大多数场景是在方法的 入口处判空,这个字符串有可能是null,也有可能是"   ",甚至是"\n",上面这种判空方法显示不能覆盖这么多场景;

方法二 :这时候IsNullOrEmpty就横空出世了,针对字符串值为string.Empty、str2 = ""、null,都可以用

static void Main(string[] args){string str1 = string.Empty;if (string.IsNullOrEmpty(str1)){Console.WriteLine("str1 is  empty"); ;}string str2 = "";if (string.IsNullOrEmpty(str2)){Console.WriteLine("str2 is  empty"); ;}string str3 = null;if (string.IsNullOrEmpty(str3)){Console.WriteLine("str3 is  empty"); ;}Console.ReadKey();}

运行结果如下:

f202a0c4f13ffd71d3e5fa630f03dd7f.png

方法三 :但是IsNullOrEmpty在字符串为"     ","\n","\t",时候就无能为力了,为了覆盖这些场景,高手们一般判空使用方法IsNullOrWhiteSpace

static void Main(string[] args){string str1 = string.Empty;if (string.IsNullOrWhiteSpace(str1)){Console.WriteLine("str1 is  empty"); ;}string str2 = "";if (string.IsNullOrWhiteSpace(str2)){Console.WriteLine("str2 is  empty"); ;}string str3 = null;if (string.IsNullOrWhiteSpace(str3)){Console.WriteLine("str3 is  empty"); ;}string str4 = "    ";if (string.IsNullOrWhiteSpace(str4)){Console.WriteLine("str4 is  empty"); ;}string str5 = "\n";if (string.IsNullOrWhiteSpace(str5)){Console.WriteLine("str5 is  empty"); ;}string str6 = "\t";if (string.IsNullOrWhiteSpace(str6)){Console.WriteLine("str6 is  empty"); ;}Console.ReadKey();}

运行结果:

e108f1144404647a137874ca4f3136f1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blazor University (51)依赖注入 —— 拥有多个依赖项:错误的方式

原文链接:https://blazor-university.com/dependency-injection/component-scoped-dependencies/owning-multiple-dependencies-the-wrong-way/拥有多个依赖项:错误的方式OwningComponentBase[1] 类是一个合适的解决方案,当我们需要我们的组件…

Centos 7 搭建.net web项目

现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。 安装centos系统 请自行安装或百度教程 安装 libicu包 和 dotnet 温馨提示:如果需…

IDEA 快捷注释

1. 新建类的注释模板 1) File->settings->Editor->Live Templates 2) 点击绿色号,选择template group ,输入group的name,然后点ok 3) 选中刚才添加的group,点击号,选择live Template 4) 代码模板位置,个人用的代码: 1 /** 2 * &…

matlab 如何hidden,Matlab基本函数-hidden函数

1、hidden函数:设置或取消隐藏线模式2、用法说明(1)hidden on 函数对当前图形打开隐藏线条删除,使网格图后面的线条被前面的线条遮住。设置曲面图形对象的属性FaceColor为坐标轴背景颜色;(2)hidden off 函数对当前图形关闭隐藏线条删除&#…

异常处理,究竟是处理什么

“系统中每行代码,都应该是有意义的,如果一段代码可有可无,那它就不应该存在。”01—内容简述异常处理是软件开发的必备技能,但“异常处理,究竟是处理什么?”,很多小伙伴并没有一个清晰的认识&a…

第十一篇:(顺序)容器的好伴侣 --- 容器适配器

前言 vector容器的数据结构原型是顺序表,它很好的实现了顺序表的功能,大大方便了编程。好了,现在假设有天我又想用栈,那么有没有栈对应的容器呢?很遗憾,木有。但基于“栈”可以由顺序表或者链表实现这一特性…

第一季度ADC市场份额揭榜 A10 Networks再获用户青睐

近日,根据全球知名咨询公司IDC 发布的2018年第一季度中国ADC市场分析报告显示,A10 Networks 稳占中国ADC市场份额第二名。数据来源:IDC 2018年Q1 ADC市场报告 从厂商排名来看依次为 F5 30%, A10Networks 12%, DPtech 12% ,Sangfor 9% &#…

利用linux shell自己主动顶贴

在论坛上面发帖问个什么东西的话,一旦不顶。帖子就秒沉了,可是又实在不想每时每刻都去顶,怎么办?以下展示了怎样利用shell 的crontab实现自己主动顶贴。 闲话不多说了,以豆瓣为例—– 1: 用chrome打开豆瓣…

深度学习库 SynapseML for .NET 发布0.1 版本

2021年11月 微软开源一款简单的、多语言的、大规模并行的机器学习库 SynapseML(以前称为 MMLSpark),以帮助开发人员简化机器学习管道的创建。具体参见[1]微软深度学习库 SynapseML:可直接在系统中嵌入 45 种不同机器学习服务、支持…

支持回调处理 php函数,PHP支持回调的函数有哪些?

PHP支持回调的函数有:1、匿名函数,代码为【$server->on Request】;2、类静态方法,代码为【static function test $req】;3、函数,代码为【my_onRequest $req】。PHP支持回调的函数有:1、匿名…

病毒木马查杀实战第019篇:病毒特征码查杀之编程实现

前言上次我们已经简介过了病毒特征码提取的基本方法,那么这次我们就通过编程来实现对于病毒的特征码查杀。定义特征码存储结构为了简单起见。这次我们使用的是setup.exe以及unpacked.exe这两个病毒样本。经过上次的分析,我们对setup.exe样本的特征码提取…

《ASP.NET Core 6框架揭秘》实例演示[22]:如何承载你的后台服务[补充]

借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载,ASP.NET Core应用最终也体现为这…

ASP.NET Core MVC压缩样式、脚本及总是复制文件到输出目录

前言 在.NET Core之前对于压缩样式文件和脚本我们可能需要借助第三方工具来进行压缩,但在ASP.NET MVC Core中则无需借助第三方工具来完成,本节我们来看看ASP.NET Core MVC为我们提供了哪些方便。 自动压缩样式和脚本 当我们在测试环境中肯定不需要压缩脚…

京东订单自动评价方法

刚刚完成的一个京东自动订单脚本, 以后还要加入其它京东自动的脚本项目地址: https://github.com/mm333444/aox_jd_auto_script 京东自动完成脚本 目前只完成京东订单自动评价, 评价时会自动上传商品图片 一、安装 1. 程序依赖 python3.52. 安装配置 安装pipenv安装模块 pipenv…

宜建立自主可控的车用芯片和操作系统技术体系

万物互联时代,操作系统的边界在不断突破,面向“人机物”融合的泛在计算场景,能够支撑分布式人机物协同应用的操作系统将是产业未来之光。操作系统在经过主机时代、PC互联时代、移动互联时代之后,来到万物互联时代,这恰…

django 用户管理(1)

编辑了前端的页面展示,用的bootstrap 用户登录 用户信息 用户编辑 创建用户 修改密码 转载于:https://blog.51cto.com/jacksoner/2133129

qiaoye.php,全自动无限生成关键词页面(黑帽SEO优化终极方法)

如果你是做黑帽SEO的,如果你还停留在用栏目、租域名、劫持等手段来做黑帽SEO优化,我可以肯定的告诉你,你做的再好,也赚不了多少。那么今天咱们要说的就是无限生成关键词页面用内容页来做黑帽SEO优化。这是我在演示的时候做的一个站…

v1.0.25 新版发布及Smart Meetup重新开启丨SmartIDE

作者:徐磊文章首发地址:https://smartide.cn/zh/blog/2022-0892-sprint25/关于SmartIDESmartIDE是一群开发者为所有开发者开发的开源云原生IDE,我们的使命是“为开发者赋予云原生的超能力”!使用SmartIDE你只需要学会一个简单的指…

vue实现首屏加载等待动画 避免首次加载白屏尴尬

为什么80%的码农都做不了架构师?>>> 0 直接上效果图 1背景,用户体验良好一直是个重要的问题。 2怎么加到自己项目里面? 复制css html代码到自己的index.html即可 代码链接 源码地址 Vue学习前端群493671066,美女多多。…

java-回调机制详解

转:http://blog.csdn.net/llayjun/article/details/50454148 阅读目录 一、前言二、回调的含义和用途三、Java实现接口回调 四、Android中的接口回调五、参考资料一、前言 最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容&a…