0

そのため、請求書の合計コストの10進値をクラスメソッドからテキストボックスに返そうとしています。

このクラスメソッドは次のとおりです。

public decimal calcCost(decimal totalCost, bool specialistRepair, decimal labourHours,      decimal standardRate, decimal partSaleCost)
    {

        foreach (Job j in m_jobs)
        {
            if (specialistRepair == true)
            {
                totalCost = totalCost + 45;
            }

            totalCost = totalCost + partSaleCost + (labourHours * standardRate);
        }

        return totalCost;
    }

私が抱えている問題は、「型を暗黙的に変換できない」と「10進数を「文字列」に変換できない」ということです。

'='記号の後の行全体を解析しようとしましたが、それは不可能です。

txtTotal.Text = //Here// Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost); 

mainのコードを次に示します。

      bool checkSpecialist = true;
        if (chkSpecialistRepairs.Checked == true)
        {
            checkSpecialist = true;

        }

        decimal jobHours = decimal.Parse(txtHours.Text); 
        decimal standardRate = Program.AuspexDo.StandardRate;
        decimal partSaleCost = 5; //to be configured



        txtTotal.Text = Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost); 

誰かが助けることができればそれは大いにありがたいです。ありがとう。

4

2 に答える 2

2

に変更します

txtTotal.Text = Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost).ToString();  
于 2012-10-22T13:50:51.087 に答える
1

calcCostを返し、decimal戻り値をに割り当てようとしています。txtTotal.Textこれはタイプstringです。

エラーが示すように、2つの間に変換はありません-戻り値を最初に変換する必要があります-それstringを行う方法は、戻り値を呼び出すToString()ことです:

txtTotal.Text = Program.AuspexDo.calcCost(0, 
                                          checkSpecialist, 
                                          jobHours, 
                                          standardRate, 
                                          partSaleCost)
                                          .ToString();

特定の形式に出力したい場合があるので、カスタムおよび標準の数値形式の文字列、および複合形式の文字列に関する情報を確認してください。

于 2012-10-22T13:55:12.050 に答える