如何理解“!string.IsNullOrWhiteSpace(s)”语法?
How to understand "!string.IsNullOrWhiteSpace(s)" syntax?
嗯,其实我知道“!”表示 NOT,我非常理解 "IsNullOrWhiteSpace" 函数目标。但是曾几何时,当我在互联网上寻找如何删除空格时,我遇到了这种语法:
if (!string.IsNullOrWhiteSpace(s))
{
writer.WriteLine(s);
}
我应该如何理解这样的语法? DATATYPE(!!!) 前的感叹号,然后数据类型使用我的字符串参数调用函数,稍后被写入某个文件。
而且,顺便说一句,如果我从中读取文本的文件在实际字符串之间有几个(可能或多或少)空格,是否有更好的方法来删除空行?
IsNullOrWhiteSpace
is a static method 在类型 System.String
上定义(可以缩写为 string
)。
您发布的代码片段不会删除空行,它只是跳过了它们。这意味着 writer.WriteLine(s);
部分不为空行调用。
Exclamation mark before the DATATYPE(!!!)
它不在数据类型之前,它在调用 System.String
类型的静态方法 IsNullOrWhiteSpace
之前。您可以研究一下 here。此方法的结果是布尔值。因此,您正在对布尔结果应用否定运算符 (!
)。当结果等于 true
时,即在 s
参数中传递给 IsNullOrWhiteSpace 方法的字符串为空或白色 space,取反运算符使它成为 false
,反之亦然。之后 if
语句获取 !
运算符工作的结果(true
或 false
)并决定下一步做什么。
And, by the way, is there a better approach to delete empty lines if
my file from where I read text has several (maybe, more or less)
whitespaces between the actual strings?
所以你正在从文件中读取并写入另一个或同一个文件。您的方法可行,但请记住,s
必须是初始文件中的一行,而不是单词或符号。
嗯,其实我知道“!”表示 NOT,我非常理解 "IsNullOrWhiteSpace" 函数目标。但是曾几何时,当我在互联网上寻找如何删除空格时,我遇到了这种语法:
if (!string.IsNullOrWhiteSpace(s))
{
writer.WriteLine(s);
}
我应该如何理解这样的语法? DATATYPE(!!!) 前的感叹号,然后数据类型使用我的字符串参数调用函数,稍后被写入某个文件。 而且,顺便说一句,如果我从中读取文本的文件在实际字符串之间有几个(可能或多或少)空格,是否有更好的方法来删除空行?
IsNullOrWhiteSpace
is a static method 在类型 System.String
上定义(可以缩写为 string
)。
您发布的代码片段不会删除空行,它只是跳过了它们。这意味着 writer.WriteLine(s);
部分不为空行调用。
Exclamation mark before the DATATYPE(!!!)
它不在数据类型之前,它在调用 System.String
类型的静态方法 IsNullOrWhiteSpace
之前。您可以研究一下 here。此方法的结果是布尔值。因此,您正在对布尔结果应用否定运算符 (!
)。当结果等于 true
时,即在 s
参数中传递给 IsNullOrWhiteSpace 方法的字符串为空或白色 space,取反运算符使它成为 false
,反之亦然。之后 if
语句获取 !
运算符工作的结果(true
或 false
)并决定下一步做什么。
And, by the way, is there a better approach to delete empty lines if my file from where I read text has several (maybe, more or less) whitespaces between the actual strings?
所以你正在从文件中读取并写入另一个或同一个文件。您的方法可行,但请记住,s
必须是初始文件中的一行,而不是单词或符号。