2017-08-22 2 views
0
public double Tax 
{ 
    get 
    { 
     if(isDE) 
     { 
      deTaxAmount = sellPrice - tradeAllowance; 
      deTaxAmount = Math.Ceiling(deTaxAmount/100d) * 100; 

      deTaxRounded = deTaxAmount * StateTax; 
      deTaxRounded = Math.Ceiling(deTaxRounded); 
      return deTaxRounded; 
     } 

     return TaxableAmount * StateTax; 
    } 
} 

これは問題の原因と思われるプログラムのコードです。それは正しく計算し、残りの計算機に正しいデータを吐き出します。問題は、別のクラスのラベルがTaxの値を参照していることです。何らかの理由で、最初の値ではなく2番目の値から値を取得するだけです。なぜ私の人生のためにラベルが2番目のリターンを使用しているのかわかりませんし、私のプログラムの計算ではifステートメントの下で最初のリターンを使用しています。助けてください。ここには他のクラスのラベルコードがあります。私の他のすべてのレーベルは、私の問題を引き起こしているこのラベルのように機能します。C#取得および返信データが表示されない右

labelTax.Text = calculator.Tax.ToString(); 
+3

'isDE'はどこから来ますか? – njenson

+0

else文に2番目のリターンを入れてみましたか? – Tiramonium

+1

@ティラモニウムは全く違いはありません。 – Stijn

答えて

0

私はisDEがデフォルト値falseを運ぶ、あなたのクラスのパブリックブール変数であると思います。公有財産 'Tax'を呼び出すと、ifの状態にならず、常にTaxableAmount * StateTaxを返します。

私はこのifにデバッグポイントを置き、同じことを再確認します。

+1

私はブレークポイントに新しいとこれは私のためにそれを考え出した。何らかの理由で、私はずっと前にデバッグしていたので、isDEはfalseに設定されていました。私は仕事でプログラムを使用するので、何か問題が見つかるまで数ヶ月間触れないでください。そして、この新しい機能を追加すると問題になりました。助けてくれてありがとう。ブレークポイントは素晴らしいですし、私は将来それらを使用します! –

関連する問題