私はC#が初めてで、別のメソッドを使用して変数を変更する方法を理解しようとしています。私が投稿しているコードは私が取り組んでいるものであり、それを行うためのはるかに優れた簡単な方法があることは知っていますが、与えられたパラメーターを使用することを余儀なくされています.
したがって、コードについては、複数のメソッドが必要であり、最初のメソッドから変数を作成/取得し、2 番目のメソッドで変更してから、その変更された変数を 3 番目の別のメソッドで使用しようとしています。しかし、必要なメソッドの種類や、ref、out などを使用する必要があるかどうかを理解しているかどうかはわかりません。
私がここに投稿しているコード (最終的に変数を 3 番目のメソッドにプルする 2 つのメソッド) は、現時点ではまだエラーをスローしていませんが、必要なものに対しては機能しないと思います。
ascore
最初のメソッドで、midScore
、およびfinalscore
を取得し、最初のメソッドでtryparsetryparse
された後に変更し、3 番目のメソッドの計算にその最後の tryparsed /modified 変数を使用しようとしています。最初のメソッドには bool を使用し、2 番目のメソッドにも void を使用する必要があると言われました。したがって、最後の ascore、midScore、および finalscore 変数を、3 番目のメソッドの最初の 2 つのメソッドから tryparse および変更する方法がわかりません。
private bool DoGrades(out decimal ascore, out decimal midScore, out decimal finalscore)
{
if (decimal.TryParse(assignmentBox.Text, out ascore) && (ascore <= 100) && (ascore >= 0))
{
if (decimal.TryParse(midtermBox.Text, out midScore) && (midScore <= 100) && (midScore >= 0))
{
if (decimal.TryParse(finalBox.Text, out finalscore) && (finalscore < 100) && (finalscore >= 0))
{
IsTrue = true;
return IsTrue;
}
else
{
MessageBox.Show("Input must be between 0 and 100");
assignmentBox.Text = "";
midtermBox.Text = "";
finalBox.Text = "";
finalBox.Focus();
IsTrue = false;
}
}
else
{
MessageBox.Show("Input must be between 0 and 100");
assignmentBox.Text = "";
midtermBox.Text = "";
finalBox.Text = "";
midtermBox.Focus();
IsTrue = false;
}
}
else
{
MessageBox.Show("Input must be between 0 and 100");
assignmentBox.Text = "";
midtermBox.Text = "";
finalBox.Text = "";
assignmentBox.Focus();
IsTrue = false;
}
DoGrades(out ascore, out midScore, out finalscore);
return true;
}
private void BonusPoints (ref decimal itMajor, ref decimal lovingIt)
{
if (itMajorCheck.Checked)
{
itMajor = 10;
}
else
{
itMajor = 0;
}
if (lovingCheck.Checked)
{
lovingIt = 10;
}
else
{
lovingIt = 0;
}
ascore = ascore + itMajor + lovingIt;
midScore = midScore + itMajor + lovingIt;
finalscore = finalscore + itMajor + lovingIt;
}