用了很久的C++,最近接触C#,发现简单好多,除了一些语法,函数的使用不同,底层还是能看到一些C/C++的影子。这引用百科的一段话做个说明,有兴趣的可以自己去翻阅C#计算机语言的介绍。
C#(读作“C Sharp”),C# 是面向对象的、面向组件的编程语言。C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如,没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
话不多说,今天主要练习的下c#开发Windows应用的方式。仍然选择编写计算器的练习项目。
打开VS2022,创建新项目,
选择Windows窗体应用(.NET Framework),点击下一步
选择路径,文件名,.可以选择默认,然后点击创建
然后在打开的页面里进行各个控件的设计编辑
设计完布局如下
然后给每个Button添加Click响应事件。
数字键响应函数
private void button_Click_7(object sender, EventArgs e)
{
GlobalVar.str_formula += "7";
GlobalVar.str_num += "7";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = $"输入中...{GlobalVar.str_num}";
}
private void button_Click_8(object sender, EventArgs e)
{
GlobalVar.str_formula += "8";
GlobalVar.str_num += "8";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_9(object sender, EventArgs e)
{
GlobalVar.str_formula += "9";
GlobalVar.str_num += "9";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_4(object sender, EventArgs e)
{
GlobalVar.str_formula += "4";
GlobalVar.str_num += "4";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_5(object sender, EventArgs e)
{
GlobalVar.str_formula += "5";
GlobalVar.str_num += "5";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_6(object sender, EventArgs e)
{
GlobalVar.str_formula += "6";
GlobalVar.str_num += "6";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_1(object sender, EventArgs e)
{
GlobalVar.str_formula += "1";
GlobalVar.str_num += "1";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_2(object sender, EventArgs e)
{
GlobalVar.str_formula += "2";
GlobalVar.str_num += "2";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_3(object sender, EventArgs e)
{
GlobalVar.str_formula += "3";
GlobalVar.str_num += "3";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
private void button_Click_0(object sender, EventArgs e)
{
GlobalVar.str_formula += "0";
GlobalVar.str_num += "0";
textBox2.Text = GlobalVar.str_formula;
textBox1.Text = "输入中..." + GlobalVar.str_num;
}
运算符响应函数
private void Addbutton_Click(object sender, EventArgs e)
{
double Value = 0;
double.TryParse(GlobalVar.str_num, out Value);
bool flag = CalculateFunction(GlobalVar.calculateType, Value);
//GlobalVar.num1 = 0;
GlobalVar.str_num = "";
GlobalVar.str_formula += "+";
GlobalVar.calculateType = 0;
if (flag)
{
textBox1.Text = "输入中...";
textBox2.Text = GlobalVar.str_formula;
}
else
{
textBox1.Text = "计算式有异常...";
GlobalVar.str_formula = "";
}
}
private void Subtractbutton_Click(object sender, EventArgs e)
{
double Value = 0;
double.TryParse(GlobalVar.str_num, out Value);
bool flag = CalculateFunction(GlobalVar.calculateType, Value);
//GlobalVar.num1 = 0;
GlobalVar.str_num = "";
GlobalVar.str_formula += "-";
GlobalVar.calculateType = 1;
if (flag)
{
textBox1.Text = "输入中...";
textBox2.Text = GlobalVar.str_formula;
}
else
{
textBox1.Text = "计算式有异常...";
GlobalVar.str_formula = "";
}
}
private void Mutilbutton_Click(object sender, EventArgs e)
{
double Value = 0;
double.TryParse(GlobalVar.str_num, out Value);
bool flag = CalculateFunction(GlobalVar.calculateType, Value);
//GlobalVar.num1 = 0;
GlobalVar.str_num = "";
GlobalVar.str_formula += "*";
GlobalVar.calculateType = 2;
if (flag)
{
textBox1.Text = "输入中...";
textBox2.Text = GlobalVar.str_formula;
}
else
{
textBox1.Text = "计算式有异常...";
GlobalVar.str_formula = "";
}
}
private void Dividebutton_Click(object sender, EventArgs e)
{
double Value = 0;
double.TryParse(GlobalVar.str_num, out Value);
bool flag = CalculateFunction(GlobalVar.calculateType, Value);
//GlobalVar.num1 = 0;
GlobalVar.str_num = "";
GlobalVar.str_formula += "/";
GlobalVar.calculateType = 3;
if (flag)
{
textBox1.Text = "输入中...";
textBox2.Text = GlobalVar.str_formula;
}
else
{
textBox1.Text = "计算式有异常...";
GlobalVar.str_formula = "";
}
}
全局变量
public class GlobalVar
{
public static string str_num = "";//单个数据字符串
public static string str_formula = "";//表达式字符串
public static double calculateNum = 0;//计算结果
public static int calculateType = 4;
}
运行效果