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 で使用されるデータのファイルを読み書きします。以下の convert 関数で "userProg" の代わりにこれらの変数の 1 つを使用すると、テキスト ファイルと同じように表示されるため、これはすべて正常に機能しています。

私の問題は、変換をしようとしたときに発生します。私の数式は CalcProg にあります。実際にプログラムを起動すると、変数 userProg に値を設定する 2 つの要素 (プログレス バーとラベル) は、テキスト ファイルにどのような値が入力されてもゼロを表示します。

CalcProg メソッドに double を使用し、userProg を double に設定しようとしましたが、うまくいきません。私は少し立ち往生しており、誰かが私を助けることができれば、助けていただければ幸いです。

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 に答える