How to understand "!string.IsNullOrWhiteSpace(s)" syntax?

时间:2018-04-26 17:03:32

标签: c# string removing-whitespace isnull writer

Well, I know in fact that "!" means NOT, and I quite understand the "IsNullOrWhiteSpace" function destination. But once upon, when I surfed through the Internet in terms of finding how to delete whitespaces, I've faced that kind of syntax:

if (!string.IsNullOrWhiteSpace(s))
{
    writer.WriteLine(s);
}

How should I understand such a syntax? Exclamation mark before the DATATYPE(!!!), then the datatype calls the function with the parameter of my string, later being written to some file. 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?

2 个答案:

答案 0 :(得分:2)

您发布的代码段并不会删除空行,只会将其从写入中删除。这意味着writer.WriteLine(s);部分没有调用空行。

  

DATATYPE(!!!)之前的感叹号

在调用IsNullOrWhiteSpace类型的静态方法System.String之前,它不在数据类型之前。您可以研究here。这个方法的结果是布尔值。因此,您将一个否定运算符(!)应用于布尔结果。当结果等于true时,即传递给s参数中的IsNullOrWhiteSpace方法的字符串为空或空格,否定运算符使其为false,反之亦然。之后,if语句将!运算符工作(truefalse)的结果生效,并决定下一步该做什么。

  

顺便说一下,如果有更好的方法来删除空行   我从哪里读文本的文件有几个(可能,或多或少)   实际字符串之间的空格?

所以你要从文件中读取并写入另一个或同一个文件。您的方法可行,但请记住,s必须是初始文件中的一行,而不是单词或符号。

答案 1 :(得分:0)

IsNullOrWhiteSpace是在System.String类型上定义的static method(可以缩写为string)。