我是 C# 新手,我正在尝试弄清楚如何使用单独的方法来修改变量。我发布的代码就是我正在处理的代码,虽然我知道有更好、更简单的方法来做这件事,但我不得不使用给定的参数。
因此,对于代码,我需要有多种方法,并且我正在尝试从第一种方法中生成/获取变量,在第二种方法中对其进行修改,然后在第三种单独的方法中使用该修改后的变量。但我不确定我是否了解我需要什么方法类型,或者我是否需要使用 ref、out 等。
到目前为止,我在这里发布的代码(两种方法最终会将变量拉入第三种方法)还没有抛出任何错误,但我认为它不会满足我的需要。
我试图在第一种方法中采用ascore
,midScore
和finalscore
,然后在第一种方法中对其进行tryparsedtryparse
后对其进行修改,然后将最终的 tryparsed /modified 变量用于我的第三种方法计算。有人告诉我,第一种方法需要使用 bool,第二种方法也需要使用 void。所以我不知道如何从前两种方法中尝试解析和修改我的最终 ascore、midScore 和 finalscore 变量,以用于我的第三种方法。
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;
}