如何理解C#中!string.IsNullOrWhiteSpace(s)的语法?
理解
if (!string.IsNullOrWhiteSpace(s))的语法逻辑 兄弟,先纠正一个小观察偏差:那个感叹号!不是放在string类型前面,而是放在整个string.IsNullOrWhiteSpace(s)方法调用的前面,用来做逻辑取反。咱们一步步拆解:
首先看核心方法:
string.IsNullOrWhiteSpace(s)
这是.NET框架里的一个静态工具方法,专门用来检查字符串s的状态:- 如果
s是null,或者是空字符串"",或者全是空白字符(比如空格、换行、制表符这类看不见的空白),这个方法会返回true - 如果
s是有实际内容的有效字符串,就返回false
- 如果
然后看前面的
!运算符
这是C#里的逻辑非运算符,作用是把它后面的布尔值反转:- 如果
string.IsNullOrWhiteSpace(s)返回true(也就是s无效),加!后就变成false - 如果
string.IsNullOrWhiteSpace(s)返回false(也就是s有效),加!后就变成true
- 如果
最后看整个
if条件的意思if (!string.IsNullOrWhiteSpace(s))翻译成大白话就是:当字符串s不是null、不是空串、也不是全空白的时候,就执行大括号里的代码——也就是writer.WriteLine(s);,把这个有效的字符串写入文件。
举个简单的例子更清楚:
string s1 = null; string s2 = ""; string s3 = " "; string s4 = "Hello World"; // 只有s4会触发写入操作 if (!string.IsNullOrWhiteSpace(s1)) { /* 不执行 */ } if (!string.IsNullOrWhiteSpace(s2)) { /* 不执行 */ } if (!string.IsNullOrWhiteSpace(s3)) { /* 不执行 */ } if (!string.IsNullOrWhiteSpace(s4)) { writer.WriteLine(s4); /* 执行,写入"Hello World" */ }
内容的提问来源于stack exchange,提问作者dima_mayd
相关产品推荐
相关产品推荐

