我想为图书馆做一个简单的软件。我刚刚开始在C#中掌握OOP的概念,并且我的一位教授告诉我们,在您的代码中使用存储库类是一种很好的做法,这样客户端代码就不会直接与处理数据的类进行交互基础。所以我正在尝试在Windows窗体中创建登录/注册表单,但我遇到了一些问题。C#简单图书馆项目与OOP
public User GetByUsernameAndPassword(string username, string password)
{
using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
User item = new User();
item.FirstName = sr.ReadLine();
item.LastName = sr.ReadLine();
item.Username = sr.ReadLine();
item.Password = sr.ReadLine();
if (item.Username == username && item.Password == password)
{
return item;
}
}
return null;
}
}
}
我的意思是,我想看看,当我注册一个新用户,如果已存在使用同一用户名的另一个用户时,如果有,我想一个消息框出现说相同的用户名不能使用两次。我怎样才能做到这一点?如果返回的结果为空,如何让消息框出现,并在结果返回类User的对象时登录用户?
非常感谢。
提示,你可以消除你的使用语句之间的'{'。他们将共享相同的'{...}',并且您可以稍微减少嵌套。 – Amy
这将有助于查看实际调用'GetByUsernameAndPassword'的代码(您的表单)。连接这两部分将有助于解决问题。 –
您的方法在失败时返回'null',但至少有两个失败场景,并且它不会让调用代码知道发生了什么。我认为让这种方法更具体一些很有用:不要用给定的用户名*和密码查找用户,而要创建一种只查找具有给定用户名的用户的方法。这在多个场景中很有用:注册代码可以使用它来确定用户名是否已被占用,登录代码可以使用它来确定用户是否存在,如果是,则密码是否匹配。 –