我正在为一个介绍级别的c#calss工作,我很难找到方法。在某些情况下,这本书似乎并不十分清楚。对于我目前的任务,我正在尝试制定一个计算住院费用的计划。我们需要为该计划提供三种不同的方法。我觉得我至少创建了正确的方法,但我不确定如何在按钮单击事件期间使程序从这些方法输出内容。这是我到目前为止(我在calcBtn_Click方法中尝试了大约一百万种不同的东西,我很困惑)。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int CalcStayCharges()
{
int lengthOfStay;
lengthOfStay = int.Parse(dayStayed.Text);
int totalStayCharges = (350 * lengthOfStay);
return totalStayCharges;
}
private double CalcMiscCharges()
{
double medCharges;
medCharges = double.Parse(medCharge.Text);
double surgCharges;
surgCharges = double.Parse(surgicalCharge.Text);
double labFees;
labFees = double.Parse(labFee.Text);
double rehabCharges;
rehabCharges = double.Parse(rehabCharge.Text);
double MiscCharge = (medCharges + surgCharges + labFees + rehabCharges);
return MiscCharge;
}
public double CalcTotalCharges()
{
double miscCharges = CalcMiscCharges();
int stayCharges = CalcStayCharges();
double totalCharges = miscCharges + stayCharges;
return totalCharges;
}
private void calcBtn_Click(object sender, EventArgs e)
{
MessageBox.Show(CalcTotalCharges());
}
}
}
答案 0 :(得分:0)
在代码中的某处,您必须将从方法返回的值赋给变量,然后显示/显示该变量。例如:
int stayCharcges = CalcStayCharges();
假设在文本框中用户填写了“3”。那么stayCharges
将是'1050'。现在,您可以在标签中显示它或通过MessageBox显示它:
ResultLabel.Text = String.Format("Charge: {0}", stayCharges);
//or
ResultLabel.Tekst = stayCharges.ToString() //only the number
//With a MessageBox
MessageBox.Show(String.Format("Charge: {0}", stayCharge);
答案 1 :(得分:0)
如果你想分别展示三个不同的东西,你可以这样做:
private void calcBtn_Click(object sender, EventArgs e)
{
string display = "Stay Charges: " + CalcStayCharges() + Environment.NewLine +
"Misc Charges: " + CalcMiscCharges() + Environment.NewLine +
"Total Charges: " + CalcTotalCharges();
MessageBox.Show(display);
}
这里,我正在构建一个我将传递给MessageBox.Show()的字符串。 MessageBox.Show()需要一个字符串参数,但您当前正在传递一个double。该字符串添加了一些英文文本来解释每个数字是什么,并显示数字。 Environment.NewLine
会导致每笔费用显示在消息框的单独行中。
答案 2 :(得分:0)
将一些标签放在您的表单上:
然后在您的点击事件中:
lblMiscCharge.Text = Convert.ToString(CalcMiscCharges());
lblStayCharge.Text = Convert.ToString(CalcStayCharges());
lblTotalCharge.Text = Convert.ToString(CalcTotalCharges());
您的 CalcTotalCharges 方法也可以细化为:
public double CalcTotalCharges()
{
return CalcMiscCharges() + CalcStayCharges();
}
<强>更新强>
验证GUI输入的更强大方法。
private int CalcStayCharges()
{
int lengthOfStay;
if (int.TryParse(dayStayed.Text, out lengthReturnOfStay))
{
return 350 * lengthOfStay;
}
return 0;
}
private double CalcMiscCharges()
{
double medCharges;
double labFees;
double surgCharges;
double rehabCharges;
if (double.TryParse(medCharge.Text, out medCharges) &&
double.TryParse(surgicalCharge.Text, out surgCharges) &&
double.TryParse(labFee.Text, out labFees) &&
double.TryParse(rehabCharge.Text, out rehabCharges)
)
{
return (medCharges + surgCharges + labFees + rehabCharges);
}
return 0;
}