ライブラリ用のシンプルなソフトウェアを作りたいと思います。私はちょうどC#でOOPの概念を把握し始めました。私は教授の一人から、クライアントコードがデータを扱うクラスと直接対話しないように、コードにリポジトリクラスを持たせるのがよいことを教えられましたベース。だから、私はWindowsフォームでログインフォームを登録しようとしていますが、いくつか問題があります。OOPを使用したC#シンプルライブラリプロジェクト
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;
}
}
}
私のポイントは、私は、私は、新しいユーザーを登録するとき場合、既に同じユーザ名を持つ別のユーザーが存在するかどうかを確認したいということで、そこにある場合、私はメッセージボックスが同じユーザー名をすることはできませんと言って表示させたいです2回使用されます。どうすればこれを達成できますか?返された結果がnullの場合にメッセージボックスを表示させ、結果がクラスUserからオブジェクトを返すときにユーザーにログインするにはどうすればよいですか?
ありがとうございます。
ヒントは、使用している文の間の '{'を削除することができます。彼らは同じ '{...} 'を共有し、ネスティングを少し減らします。 – Amy
実際に 'GetByUsernameAndPassword'を呼び出すコード(フォームのコード)も見てください。 2つの部分の間の接続を作ることは、この問題を解決するのに役立ちます。 –
あなたのメソッドは失敗時に 'null'を返しますが、少なくとも2つの失敗シナリオがあり、発生したコードを呼び出しコードに知らせることはできません。このメソッドをあまり具体的にしないと便利だと思います。特定のユーザー名*と*パスワードを使用してユーザーを検索するのではなく、特定のユーザー名でユーザーを検索するメソッドを作成します。これは、複数のシナリオで役に立ちます。登録コードは、ユーザー名がすでに使用されているかどうかを判断するために使用します。ログインコードは、ユーザーが存在するかどうかを判断するために使用します。 –