のbooleanメソッドの値を返すわけではありません。プログラミングではとても新しいので、Visual StudioでWindowsフォームアプリケーションを使用してパスワード管理プログラムを作成しようとしています。基本的には、これでアカウントを追加、編集、保存することができます。すべてのコードパスがクラス
私はAccountクラスを追加しました。私はaddAccountメソッドを使用しました。しかし、それは私に、すべてのコードパスが値を返すとは限らないというエラーを出しました。なぜこれはそうですか?私と一緒にゆっくり行ってください。私はこれで非常に新しいです。
namespace thePass
{
class Account
{
int numAccount;
string[] AccountName;
string[] Email;
string[] Username;
string[] Password;
//constructors
public Account(string in_AccountName, string in_Email, string in_Username, string in_Password)
{
numAccount = 0;
AccountName = new string[] { in_AccountName };
Email = new string[] { in_Email };
Username = new string[] { in_Username };
Password = new string[] { in_Password };
//NOT DONE KEEP GOING HERE CHECK NOTES FOR HELP maybe i leave as default?
}
public bool addAccount(string in_Account, string in_Email, string in_Username, string in_Password)
{
bool isFound = false;
bool isAdded = false;
for (int i = 0; i < numAccount; i++)
{
if (AccountName[i].CompareTo(in_Account) == 0)
{
isFound = true;
break;
}
if (isFound == false)
{
AccountName[numAccount] = in_Account;
numAccount++;
isAdded = true;
}
Email[numAccount] = in_Email;
Username[numAccount] = in_Username;
Password[numAccount] = in_Password;
return isAdded;
}
}
あなたのaddAccount関数はブール値を返さなければなりません。 numAccountが0の場合、forループは入力されません。したがってエラーです。一言で言えば、ループの外側にもブール値を返すべきです: – A3006
ビジネス知識とコードの知識を混同しないように注意してください。たとえば、numAccountが決して '0'にならないことが分かります。コードはそうではありません。 'numAccount <= 0'の場合、コードは決して' return'に達しません。 'numAccount <= 0'が本当に有効でない場合は、それをチェックして例外をスローします。それにかかわらず、メソッドの最後にデフォルト値を返します。 BTW: 'for'ループ内で返す代わりに、ループの中から' break 'してメソッドの最後に単一の 'return isAdded'を持たせることができます。 –