public partial class frmCalculator : Form
{
public frmCalculator()
{
InitializeComponent();
}
private Operation oper = null;
//数据操作开关
private bool Switch = false;
//输入的第一个数
private double num1 = 0;
//输入的第二个数
private double num2 = 0;
//num1 和 num2 的区分
private bool numDis = false;
//判断输入的第一个数是否是多位数
private bool Multiplace1 = false;
//判断输入的第二个数是否是多位数
private bool Multiplace2 = false;
/// <summary>
/// 处理输入的数据
/// </summary>
/// <param name="defaultNum">当前显示的数据</param>
/// <param name="number">要加入的数据</param>
/// <returns>处理后的数据</returns> private double dateSwitch(string defaultNum, string number)
{
string _return = String.Empty;
if (defaultNum != String.Empty || defaultNum != "0")
_return = defaultNum;
switch (Switch)
{
case false:
_return += number.Trim();//trim()返回值类型是string
break;
case true:
_return = number.Trim();
break;
}
return double.Parse(_return.Trim());//parse是将string型转换为浮点型
} /// <summary>
/// 判断输入的是第一个数还是第二个数
/// </summary>
/// <param name="defaultNum">当前显示的数据</param>
/// <param name="number">要加入的数据</param>
/// <returns>处理后的数据</returns> private void Judgement(string defaultNum,string number)
{
switch (numDis)
{
case false:
//输入的第一位数是单位数
if (!Multiplace1)
{
txtOperation.Text = String.Empty;
Multiplace1 = true;
}
//输入的第一位数是多位数
else
txtOperation.Text = defaultNum;
num1 = dateSwitch(txtOperation.Text.Trim(), number);
txtOperation.Text = num1.ToString();
break;
case true:
//输入的第二位数是单位数
if (!Multiplace2)
{
txtOperation.Text = String.Empty;
Multiplace2 = true;
}
//输入的第二位数是多位数
else
txtOperation.Text = defaultNum;
num2 = dateSwitch(txtOperation.Text.Trim(), number);
txtOperation.Text = num2.ToString();
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
txtOperation.Text = "0";
} private void btnOperate_Click(object sender, EventArgs e)
{
Button b = sender as Button;
string id = b.Name;
switch(id)
{
case "btnAdd":
oper = OperationFactory.CreateOperation("+");
break;
case "btnSubtraction":
oper = OperationFactory.CreateOperation("-");
break;
case "btnMultiplication":
oper = OperationFactory.CreateOperation("*");
break;
case "btnDivision":
oper = OperationFactory.CreateOperation("/");
break;
}
numDis = true;
Switch = false;
}
以上代码是部分代码。dateSwitch()这个方法是什么意思,请大侠给出讲解和注释,谢谢。Judgement()这个方法是什么意思,请大侠给出讲解和注释,谢谢。
实在是看不明白了,我是C#初学者。请多指教 ,谢谢!!!
/// 处理输入的数据
/// </summary>
/// <param name="defaultNum">当前显示的数据 </param>
/// <param name="number">要加入的数据 </param>
/// <returns>处理后的数据 </returns> private double dateSwitch(string defaultNum, string number)
{
string _return = String.Empty;
//defaultNum是字符串类型,进行判断defaultNum是否为空串
if (defaultNum != String.Empty || defaultNum != "0")
_return = defaultNum;
switch (Switch)
{ //进行两个选择若为false则进行加操作如:"a" + "b" = "ab"
case false:
_return += number.Trim();//trim()返回值类型是string
break;
case true:
_return = number.Trim();
break;
}
return double.Parse(_return.Trim());//parse是将string型转换为浮点型
}
{ //进行两个选择若为false则进行加操作如:"a" + "b" = "ab"
case false:
_return += number.Trim();//trim()返回值类型是string
break;
case true:
_return = number.Trim();
break;
}
当中括号里的(Switch)是啥意思啊! 没看懂!