gpt4 book ai didi

c# - 并非所有代码路径都返回一个值,for 循环

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:29 27 4
gpt4 key购买 nike

此代码将比较存储在文本文件中的用户名密码。我认为这是因为 for 循环,它可能很简单但我看不到。

public int loginCheck()
{
//-----------------------------------------------------------------
string[] users = File.ReadLines("Username_Passwords").ToArray();
//line of text file added to array
//-----------------------------------------------------------------

for (int i = 0; i < users.Length; i++)
{
string[] usernameAndPassword = users[i].Split('_');
//usernames and passwords separated by '_' in file, split into two strings

if (_username == usernameAndPassword[0] && _password == usernameAndPassword[1])
{
return 1;
//return 1, could have used bool
}
else
{
return 0;
}
}

最佳答案

如果 users 是一个数组,您不会返回任何值。

string[] users = File.ReadLines("Username_Passwords").ToArray();

// if users is empty, users.Length == 0 and the loop isn't entered
for (int i = 0; i < users.Length; i++)
{
...
}

// no value is returned

return 0; // <- suggested amendment

可能,你必须在循环下面添加return 0;

作为进一步的改进,您可以使用 Linq 重写该方法(如果文件包含任何所需的记录,则返回1用户名密码0 否则):

public int loginCheck() {
return File
.ReadLines("Username_Passwords")
.Select(line => line.Split('_'))
.Any(items => items.Length >= 2 &&
items[0] == _username &&
items[1] == _password)
? 1
: 0;
}

关于c# - 并非所有代码路径都返回一个值,for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com