2

此代码的目的是在用户未输入任何数据的情况下重复“请输入您的姓名”的问题。但是,我在使用 if 语句进行这项工作时遇到了麻烦。

while (true)
{
  Console.WriteLine("Please enter your name:");
  string line = Console.ReadLine();

  if (line=String.empty) //I'm having difficulty making this a valid statement
    Console.WriteLine("Your entry was blank");
  else break;
}
4

3 回答 3

4

line=String.empty是一个assignment,使用 assignment ( =) 运算符。它分配string.Emptyline

您应该使用比较运算符==

更好的是,查看string.IsNullOrWhitespace方法 (.NET 4.0+),或string.IsNullOrEmpty.

于 2012-09-23T10:32:04.083 回答
2

只需将您的 if 子句更改为if(line == ""),一切都会好起来的。

=是赋值运算符,您想要比较值,因此您应该使用==比较运算符。

于 2012-09-23T10:33:08.170 回答
2

在查看您的代码时,错误在于使用制作条件......您正在使用assignment operator(=)而不是comparision operator(==)......所以这样做:

if (line == String.Empty)
{
       //Put your code
}

或者,您可以简单地这样做:

if (string.IsNullOrEmpty(line)) 
           Console.WriteLine("Your entry was blank");

或者,您可以使用string.IsNullOrWhitespace指定的 Oded 答案,但它仅适用于.NET 4或以上.....

于 2012-09-23T10:33:57.390 回答