Console.ReadLine()在此代码上下文中做什么?

时间:2019-06-26 17:16:56

标签: c#

此代码中console.readline的具体用途是什么?

String username = Console.Readline();
String password = Console.Readline();

String Valid = (username = "Kmp" && password = "Kmp")? "Valid user": "Invalid User";

Console.Writeline(Valid);

我是菜鸟玩家;),我需要您的大力支持。

2 个答案:

答案 0 :(得分:4)

上面的代码部分无效。为了解决您的主要问题,Console.ReadLine()将在控制台窗口中读取用户的输入。

string username = Console.ReadLine();

username将成为用户输入的内存引用。另外定义的类型如下:

  

字符串是字符的顺序集合,用于   代表文字。字符串对象是的顺序集合   代表字符串的System.Char对象;一个System.Char对象   对应于UTF-16代码单元。字符串对象的值为   System.Char对象的顺序集合的内容,以及   该值是不可变的(即,它是只读的)。欲了解更多   有关字符串不可变性的信息,请参见不可变性   以及本主题后面的StringBuilder类部分。最大值   内存中String对象的大小为2GB,约10亿   字符。

现在要解决此逻辑:

String Valid = (username = "Kmp" && password = "Kmp")? "Valid user": "Invalid User";

那一行你有大问题。

  • 您不要使用==进行相等性比较。

我可能会执行以下操作:

public string Authenticate(string username, string password)
{
     if(String.Compare(username, "Example", false) == 0 && String.Compare(password, "Example", false) == 0)
          return "Authenticated.";

     return "Invalid credentials.";
}

然后,在拥有Valid的地方,您只需拥有:string valid = Authenticate(username, password);。但是,您可以返回WriteWriteLine直接写回用户,而不是返回字符串并使用一条消息。

您可以执行的其他条件方法:

(username == "..." && password == "...") ? "..." : "..."

if(username == "..." && password == "...") 
{
    // True
}

有几种方法,但请记住使用==来实现相等,单值是用于分配值。

答案 1 :(得分:1)

Console.ReadLine()用于将控制台存储区中的输入读取为字符串。

在您的代码中,用户名和密码正在从控制台读取,并将其存储到相应的变量中

String username = Console.Readline();  //Reads input from console and store string value to username variable
String password = Console.Readline();  //Reads input from console and store string value to password variable

从MSDN

  

从标准输入流中读取下一行字符。

here