2

我正在开发一个允许用户跟踪省钱目标的应用程序。

public static int CalcProg(int userGoal, int userBalance, int userProg)
{
    userProg = userBalance / userGoal;
    userProg = userProg * 100
    return userProg;
}

private void Form1_Load(object sender, EventArgs e)
{
    //Calls the FileVerification Method
    FileVerification();

    //Sets the label1 transparency to true
    label1.Parent = pictureBox1;
    label1.BackColor = Color.Transparent;

    LoadData();
    CalcProg(userGoal, userBalance, userProg);

    progressBar1.Value = userProg;
    progLabel = Convert.ToString(userProg);
    label3.Text = progLabel;
}

这只是代码的一小部分,但这是我遇到问题的地方。

我使用方法来读取和写入变量 userBalance 和 userGoal 中使用的数据的文件。这一切都很好,因为当我在下面的转换函数中使用其中一个变量而不是“userProg”时,它会像在文本文件中一样显示。

当我尝试进行转换时,我的问题就出现了。我的公式在 CalcProg 中。当我实际启动程序时,在变量 userProg 上设置其值的两个元素(一个进度条和一个标签),无论在文本文件中输入什么值,都只显示零。

我尝试对 CalcProg 方法使用双精度并将 userProg 设置为双精度,但这不起作用。我有点卡住了,如果有人可以帮助我,我将不胜感激。

4

2 回答 2

5

实际的问题是,您从您的方法返回一个 int,但您从不使用它。将您的代码更改为:

public static int CalcProg(int userGoal, int userBalance, int userProg)
{
    userProg = userBalance / userGoal;
    userProg = userProg * 100
    return userProg;

}

private void Form1_Load(object sender, EventArgs e)
{
    //Calls the FileVerification Method
    FileVerification();
    //Sets the label1 transparency to true
    label1.Parent = pictureBox1;
    label1.BackColor = Color.Transparent;
    LoadData();

    progressBar1.Value = CalcProg(userGoal, userBalance, userProg);
    progLabel = Convert.ToString(userProg);
    label3.Text = progLabel;


}
于 2013-09-05T05:00:43.467 回答
0

如果您需要更改传递给方法的保存参数并在调用方法后使用它,那么您可以简单地将参数更改为out参数

您可以将该方法称为

 CalcProg(userGoal, userBalance, out userProg);

以及方法

public static void CalcProg(int userGoal, int userBalance, out int userProg)
{
    userProg = userBalance / userGoal;
    userProg = userProg * 100;
}
于 2013-09-05T05:10:27.690 回答