类方法可能的解析错误

时间:2012-10-22 13:48:44

标签: c# parsing

所以我试图从类方法中将一个账单总成本的十进制值返回到文本框中。

这个类方法如下所示:

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;
    }

我遇到的问题是它说'不能隐含地将类型'十进制转换为'字符串'。

我尝试在'='符号后解析整行,但这是不可能的。

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); 

如果有人能提供帮助,我们将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

将其更改为

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

答案 1 :(得分:1)

calcCost返回decimal,您尝试将返回值分配给txtTotal.Textstring

如错误所示,两者之间没有转换 - 您需要先将返回值转换为string - 这样做的方法是在返回值上调用ToString()

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

请查看customstandard数字格式字符串以及有关composite format strings的信息,因为您可能希望输出为特定格式。