通过Visual C实现的计算器






1.79/5 (9投票s)
一篇演示如何构建Windows窗体计算器的文章。
使用 Visual C# 构建计算器
前言
.NET Framework 为计算目的提供了大量的 Math API。 我们的目标是使用一些基本的数学运算和这些 API 来构建一个计算器。 通常,在使用 Windows 窗体时,我们使用按钮来触发需要事件处理程序的事件。 但是,如何使用 Button 控件将数字字符输入到 TextBox 控件中,然后进一步使用其他按钮来执行对输入输入所需的操作? 首先,有 10 个,或者 0 – 9 个数字,它们的 text 属性必须设置为这些整数才能显示在按钮上。 其他按钮需要将其文本属性设置为用户单击它们时要执行的操作。 对于所有这些按钮,我们应该对它们进行分组。 这意味着我们需要使用两个 GroupBox 控件来包含输入字段和 Button 控件。 然后,我们需要声明一些局部变量,特别是用于指示操作的状态。 听起来像布尔数据类型。 然后,我们需要编写一个方法来计算执行的特定操作的总计。 因为手头会有几种不同类型的案例,所以我们需要使用 switch 语句。
检查这段代码,它会被编译为一个控制台应用程序
using System; public class Program { public static void Main() { Console.WriteLine("Abs({0}) = {1}", -55, Math.Abs(-55)); Console.WriteLine("Ceiling({0}) = {1}", 55.3, Math.Ceiling(55.3)); Console.WriteLine("Pow({0},{1}) = {2}", 2, 16, Math.Pow(2, 16)); Console.WriteLine("Round({0},{1}) = {2}", 10.55358, 2, Math.Round(10.55358, 2)); Console.WriteLine("Sin({0}) = {1}", 323.333, Math.Sin(323.333)); Console.WriteLine("Cos({0}) = {1}", 323.333, Math.Cos(323.333)); Console.WriteLine("Tan({0}) = {1}", 323.333, Math.Tan(323.333)); Console.WriteLine("Sqrt({0}) = {1}", 65536, Math.Sqrt(65536)); } }
在这里,我们直接使用 .NET Framework Math API。 很明显,输入 API 并插入一个值非常简单。 这是结果
Abs(-55) = 55 Ceiling(55.3) = 56 Pow(2,16) = 65536 Round(10.55358,2) = 10.55 Sin(323.333) = 0.248414709883854 Cos(323.333) = -0.968653772982546 Tan(323.333) = -0.256453561440193 Sqrt(65536) = 256
现在,如果选择获取 65,536 (2 的 16 次方) 的平方根,我们可以只按一个按钮

我使用这个例子是因为一个数据位有两个可能的值:1 或 0。一个字节中有 8 位。2 的 8 次方 = 256,即 16 的平方。 65,536 等于一个内存段。无论如何,这是计算器的代码。 尝试通过添加一些三角函数来扩展它。 这是本文的目的。 此代码未拆分为部分类。 但是,可下载的文件是。 将解决方案容器中的文件解压缩到 Projects 目录中的一个新文件夹中,然后双击解决方案文件。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.TextBox txtInput; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.Button button23; private System.Windows.Forms.Button button22; private System.Windows.Forms.Button button21; private System.Windows.Forms.Button button20; private System.Windows.Forms.Button button19; private System.Windows.Forms.Button button18; private System.Windows.Forms.Button button17; private System.Windows.Forms.Button button16; private System.Windows.Forms.Button button15; private System.Windows.Forms.Button button14; private System.Windows.Forms.Button button13; private System.Windows.Forms.Button button12; private System.Windows.Forms.Button button11; private System.Windows.Forms.Button button10; private System.Windows.Forms.Button button9; private System.Windows.Forms.Button button8; private System.Windows.Forms.Button button7; private System.Windows.Forms.Button button6; private System.Windows.Forms.Button button5; private System.Windows.Forms.Button button4; private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button1; public Form1() { InitializeComponent(); } //variables to hold operands private double valHolder1; private double valHolder2; //Varible to hold temporary values private double tmpValue; //True if "." is use else false private bool hasDecimal = false; private bool inputStatus = true; //variable to hold Operater private string calcFunc; private System.ComponentModel.IContainer components = null; ////// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } ////// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.txtInput = new System.Windows.Forms.TextBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.button23 = new System.Windows.Forms.Button(); this.button22 = new System.Windows.Forms.Button(); this.button21 = new System.Windows.Forms.Button(); this.button20 = new System.Windows.Forms.Button(); this.button19 = new System.Windows.Forms.Button(); this.button18 = new System.Windows.Forms.Button(); this.button17 = new System.Windows.Forms.Button(); this.button16 = new System.Windows.Forms.Button(); this.button15 = new System.Windows.Forms.Button(); this.button14 = new System.Windows.Forms.Button(); this.button13 = new System.Windows.Forms.Button(); this.button12 = new System.Windows.Forms.Button(); this.button11 = new System.Windows.Forms.Button(); this.button10 = new System.Windows.Forms.Button(); this.button9 = new System.Windows.Forms.Button(); this.button8 = new System.Windows.Forms.Button(); this.button7 = new System.Windows.Forms.Button(); this.button6 = new System.Windows.Forms.Button(); this.button5 = new System.Windows.Forms.Button(); this.button4 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.txtInput); this.groupBox1.Location = new System.Drawing.Point(39, 28); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(274, 34); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; // // txtInput // this.txtInput.Location = new System.Drawing.Point(7, 8); this.txtInput.Name = "txtInput"; this.txtInput.Size = new System.Drawing.Size(261, 20); this.txtInput.TabIndex = 0; // // groupBox2 // this.groupBox2.Controls.Add(this.button23); this.groupBox2.Controls.Add(this.button22); this.groupBox2.Controls.Add(this.button21); this.groupBox2.Controls.Add(this.button20); this.groupBox2.Controls.Add(this.button19); this.groupBox2.Controls.Add(this.button18); this.groupBox2.Controls.Add(this.button17); this.groupBox2.Controls.Add(this.button16); this.groupBox2.Controls.Add(this.button15); this.groupBox2.Controls.Add(this.button14); this.groupBox2.Controls.Add(this.button13); this.groupBox2.Controls.Add(this.button12); this.groupBox2.Controls.Add(this.button11); this.groupBox2.Controls.Add(this.button10); this.groupBox2.Controls.Add(this.button9); this.groupBox2.Controls.Add(this.button8); this.groupBox2.Controls.Add(this.button7); this.groupBox2.Controls.Add(this.button6); this.groupBox2.Controls.Add(this.button5); this.groupBox2.Controls.Add(this.button4); this.groupBox2.Controls.Add(this.button3); this.groupBox2.Controls.Add(this.button2); this.groupBox2.Controls.Add(this.button1); this.groupBox2.Location = new System.Drawing.Point(39, 80); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(274, 223); this.groupBox2.TabIndex = 1; this.groupBox2.TabStop = false; // // button23 // this.button23.Location = new System.Drawing.Point(203, 186); this.button23.Name = "button23"; this.button23.Size = new System.Drawing.Size(40, 23); this.button23.TabIndex = 22; this.button23.Text = "="; this.button23.UseVisualStyleBackColor = true; this.button23.Click += new System.EventHandler(this.button23_Click); // // button22 // this.button22.Location = new System.Drawing.Point(157, 186); this.button22.Name = "button22"; this.button22.Size = new System.Drawing.Size(39, 23); this.button22.TabIndex = 21; this.button22.Text = "+"; this.button22.UseVisualStyleBackColor = true; this.button22.Click += new System.EventHandler(this.button22_Click); // // button21 // this.button21.Location = new System.Drawing.Point(107, 186); this.button21.Name = "button21"; this.button21.Size = new System.Drawing.Size(44, 23); this.button21.TabIndex = 20; this.button21.Text = "."; this.button21.UseVisualStyleBackColor = true; this.button21.Click += new System.EventHandler(this.button21_Click); // // button20 // this.button20.Location = new System.Drawing.Point(57, 187); this.button20.Name = "button20"; this.button20.Size = new System.Drawing.Size(43, 23); this.button20.TabIndex = 19; this.button20.Text = "+/-"; this.button20.UseVisualStyleBackColor = true; this.button20.Click += new System.EventHandler(this.button20_Click); // // button19 // this.button19.Location = new System.Drawing.Point(7, 187); this.button19.Name = "button19"; this.button19.Size = new System.Drawing.Size(44, 23); this.button19.TabIndex = 18; this.button19.Text = "0"; this.button19.UseVisualStyleBackColor = true; this.button19.Click += new System.EventHandler(this.button19_Click); // // button18 // this.button18.Location = new System.Drawing.Point(203, 145); this.button18.Name = "button18"; this.button18.Size = new System.Drawing.Size(40, 23); this.button18.TabIndex = 17; this.button18.Text = "1/x"; this.button18.UseVisualStyleBackColor = true; this.button18.Click += new System.EventHandler(this.button18_Click); // // button17 // this.button17.Location = new System.Drawing.Point(157, 145); this.button17.Name = "button17"; this.button17.Size = new System.Drawing.Size(39, 23); this.button17.TabIndex = 16; this.button17.Text = "-"; this.button17.UseVisualStyleBackColor = true; this.button17.Click += new System.EventHandler(this.button17_Click); // // button16 // this.button16.Location = new System.Drawing.Point(107, 145); this.button16.Name = "button16"; this.button16.Size = new System.Drawing.Size(44, 23); this.button16.TabIndex = 15; this.button16.Text = "3"; this.button16.UseVisualStyleBackColor = true; this.button16.Click += new System.EventHandler(this.button16_Click); // // button15 // this.button15.Location = new System.Drawing.Point(58, 145); this.button15.Name = "button15"; this.button15.Size = new System.Drawing.Size(42, 23); this.button15.TabIndex = 14; this.button15.Text = "2"; this.button15.UseVisualStyleBackColor = true; this.button15.Click += new System.EventHandler(this.button15_Click); // // button14 // this.button14.Location = new System.Drawing.Point(7, 145); this.button14.Name = "button14"; this.button14.Size = new System.Drawing.Size(44, 23); this.button14.TabIndex = 13; this.button14.Text = "1"; this.button14.UseVisualStyleBackColor = true; this.button14.Click += new System.EventHandler(this.button14_Click); // // button13 // this.button13.Location = new System.Drawing.Point(203, 101); this.button13.Name = "button13"; this.button13.Size = new System.Drawing.Size(40, 23); this.button13.TabIndex = 12; this.button13.Text = "Sqrt"; this.button13.UseVisualStyleBackColor = true; this.button13.Click += new System.EventHandler(this.button13_Click); // // button12 // this.button12.Location = new System.Drawing.Point(158, 101); this.button12.Name = "button12"; this.button12.Size = new System.Drawing.Size(38, 23); this.button12.TabIndex = 11; this.button12.Text = "*"; this.button12.UseVisualStyleBackColor = true; this.button12.Click += new System.EventHandler(this.button12_Click); // // button11 // this.button11.Location = new System.Drawing.Point(106, 101); this.button11.Name = "button11"; this.button11.Size = new System.Drawing.Size(45, 23); this.button11.TabIndex = 10; this.button11.Text = "6"; this.button11.UseVisualStyleBackColor = true; this.button11.Click += new System.EventHandler(this.button11_Click); // // button10 // this.button10.Location = new System.Drawing.Point(58, 102); this.button10.Name = "button10"; this.button10.Size = new System.Drawing.Size(42, 23); this.button10.TabIndex = 9; this.button10.Text = "5"; this.button10.UseVisualStyleBackColor = true; this.button10.Click += new System.EventHandler(this.button10_Click); // // button9 // this.button9.Location = new System.Drawing.Point(7, 102); this.button9.Name = "button9"; this.button9.Size = new System.Drawing.Size(44, 23); this.button9.TabIndex = 8; this.button9.Text = "4"; this.button9.UseVisualStyleBackColor = true; this.button9.Click += new System.EventHandler(this.button9_Click); // // button8 // this.button8.Location = new System.Drawing.Point(202, 61); this.button8.Name = "button8"; this.button8.Size = new System.Drawing.Size(41, 23); this.button8.TabIndex = 7; this.button8.Text = "x^"; this.button8.UseVisualStyleBackColor = true; this.button8.Click += new System.EventHandler(this.button8_Click); // // button7 // this.button7.Location = new System.Drawing.Point(157, 60); this.button7.Name = "button7"; this.button7.Size = new System.Drawing.Size(39, 23); this.button7.TabIndex = 6; this.button7.Text = "/"; this.button7.UseVisualStyleBackColor = true; this.button7.Click += new System.EventHandler(this.button7_Click); // // button6 // this.button6.Location = new System.Drawing.Point(106, 61); this.button6.Name = "button6"; this.button6.Size = new System.Drawing.Size(45, 23); this.button6.TabIndex = 5; this.button6.Text = "9"; this.button6.UseVisualStyleBackColor = true; this.button6.Click += new System.EventHandler(this.button6_Click); // // button5 // this.button5.Location = new System.Drawing.Point(58, 60); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(42, 23); this.button5.TabIndex = 4; this.button5.Text = "8"; this.button5.UseVisualStyleBackColor = true; this.button5.Click += new System.EventHandler(this.button5_Click); // // button4 // this.button4.Location = new System.Drawing.Point(7, 61); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(44, 23); this.button4.TabIndex = 3; this.button4.Text = "7"; this.button4.UseVisualStyleBackColor = true; this.button4.Click += new System.EventHandler(this.button4_Click); // // button3 // this.button3.Location = new System.Drawing.Point(190, 19); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(53, 23); this.button3.TabIndex = 2; this.button3.Text = "C"; this.button3.UseVisualStyleBackColor = true; this.button3.Click += new System.EventHandler(this.button3_Click); // // button2 // this.button2.Location = new System.Drawing.Point(106, 19); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(57, 23); this.button2.TabIndex = 1; this.button2.Text = "CE"; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click); // // button1 // this.button1.Location = new System.Drawing.Point(7, 20); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "BackSpace"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); this.ClientSize = new System.Drawing.Size(338, 328); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.Name = "Form1"; this.Text = "Compute in C#"; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.groupBox2.ResumeLayout(false); this.ResumeLayout(false); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } private void button1_Click(object sender, EventArgs e) { string str; int loc; //Make sure the text length is > 1 if (txtInput.Text.Length > 0) { //Get the next to last character str = txtInput.Text.Substring(txtInput.Text.Length - 1); //Check if its a decimal if (str == ".") { //If it is toggle the hasDecimal flag hasDecimal = false; } //Get the length of the string loc = txtInput.Text.Length; //Remove the last character, incrementing by 1 txtInput.Text = txtInput.Text.Remove(loc - 1, 1); } } private void button2_Click(object sender, EventArgs e) { //Empty the input box txtInput.Text = string.Empty; //Toggle the decimal flag hasDecimal = false; } private void button3_Click(object sender, EventArgs e) { //Empty the text in the input box txtInput.Text = string.Empty; //Clear out both temp values valHolder1 = 0; valHolder2 = 0; //Set the calc switch to empty calcFunc = string.Empty; //Toggle the hasDecimal flag hasDecimal = false; } private void button4_Click(object sender, EventArgs e) { if (inputStatus) { txtInput.Text += button4.Text; } else { txtInput.Text = button4.Text; inputStatus = true; } } private void button5_Click(object sender, EventArgs e) { if (inputStatus) { txtInput.Text += button5.Text; } else { txtInput.Text = button5.Text; inputStatus = true; } } private void button6_Click(object sender, EventArgs e) { if (inputStatus) { txtInput.Text += button6.Text; } else { txtInput.Text = button6.Text; inputStatus = true; } } private void CalculateTotals() { valHolder2 = System.Double.Parse(txtInput.Text); //determine which calculation we're going to execute //by checking the value of calcFunc switch (calcFunc) { //addition case "Add": valHolder1 = valHolder1 + valHolder2; break; //subtraction case "Subtract": valHolder1 = valHolder1 - valHolder2; break; //division case "Divide": valHolder1 = valHolder1 / valHolder2; break; //multiplication case "Multiply": valHolder1 = valHolder1 * valHolder2; break; //exponents (power of) case "PowerOf": valHolder1 = System.Math.Pow(valHolder1, valHolder2); break; } //set our input area to the value of the calculation txtInput.Text = valHolder1.ToString(); inputStatus = false; } private void button7_Click(object sender, EventArgs e) { //Make sure our input box has a value if (txtInput.Text.Length != 0) { //Check to see if the calc func flag is empty if (calcFunc == string.Empty) { //Assign the value of our input //box to our holder valHolder1 = System.Double.Parse(txtInput.Text); //Empty the input box txtInput.Text = string.Empty; } else { //Flag isnt empty //Call the calculate totals method CalculateTotals(); } //Assign our calc function flag calcFunc = "Divide"; //Toggle the decimal flag hasDecimal = false; } } private void button8_Click(object sender, EventArgs e) { //Make sure the input box has a value if (txtInput.Text.Length != 0) { //Check if the calcFunc flag is empty if (calcFunc == string.Empty) { //Assign the value of the input box to our variable valHolder1 = System.Double.Parse(txtInput.Text); //Empty the input box //So the user can enter the power of value txtInput.Text = string.Empty; } else { //Call the calculate totals method CalculateTotals(); } //Assign our flag the value of "PowerOf" calcFunc = "PowerOf"; //Reset the decimal flag hasDecimal = false; } } private void button9_Click(object sender, EventArgs e) { //Check the inputStatus if (inputStatus) { //Its True //Append values to the value //in the input box txtInput.Text += button9.Text; } else { //Value is False //Set the value to the value of the button txtInput.Text = button9.Text; //Toggle inputStatus to True inputStatus = true; } } private void button10_Click(object sender, EventArgs e) { if (inputStatus) { txtInput.Text += button10.Text; } else { txtInput.Text = button10.Text; inputStatus = true; } } private void button11_Click(object sender, EventArgs e) { if (inputStatus) { txtInput.Text += button11.Text; } else { txtInput.Text = button11.Text; inputStatus = true; } } private void button12_Click(object sender, EventArgs e) { if (txtInput.Text.Length != 0) { //Make sure out calc function flag is empty if (calcFunc == string.Empty) { //Assign the value of the input box //to our holder variable valHolder1 = System.Double.Parse(txtInput.Text); //Empty the input box txtInput.Text = string.Empty; } else { //Flag isnt empty //Call the calculate totals method CalculateTotals(); } //Assign our calc function flag calcFunc = "Multiply"; //Toggle the decimal flag hasDecimal = false; } } private void button13_Click(object sender, EventArgs e) { //Make sure the input box has a value if (txtInput.Text.Length != 0) { //Assign our variable the value in the input box tmpValue = System.Double.Parse(txtInput.Text); //Perform the square root tmpValue = System.Math.Sqrt(tmpValue); //Display the results in the input box txtInput.Text = tmpValue.ToString(); //Clear the decimal flag hasDecimal = false; } } private void button14_Click(object sender, EventArgs e) { //Check the inputStatus if (inputStatus) { //Its True //Append values to the value //in the input box txtInput.Text += button14.Text; } else { //Value is False //Set the value to the value of the button txtInput.Text = button14.Text; //Toggle inputStatus to True inputStatus = true; } } private void button15_Click(object sender, EventArgs e) { //Check the inputStatus if (inputStatus) { //Its True //Append values to the value //in the input box txtInput.Text += button15.Text; } else { //Value is False //Set the value to the value of the button txtInput.Text = button15.Text; //Toggle inputStatus to True inputStatus = true; } } private void button16_Click(object sender, EventArgs e) { //Check the inputStatus if (inputStatus) { //Its True //Append values to the value //in the input box txtInput.Text += button16.Text; } else { //Value is False //Set the value to the value of the button txtInput.Text = button16.Text; //Toggle inputStatus to True inputStatus = true; } } private void button17_Click(object sender, EventArgs e) { if (txtInput.Text.Length != 0) { //Check the valueof our calculate function flag if (calcFunc == string.Empty) { //Flag is empty //Assign the value of our input //box to our holder valHolder1 = System.Double.Parse(txtInput.Text); //Empty the input box txtInput.Text = string.Empty; } else { //Flag isnt empty //Call our calculate totals method CalculateTotals(); } //assign a value to our //calculate function flag calcFunc = "Subtract"; //Toggle the decimal flag hasDecimal = false; } } private void button18_Click(object sender, EventArgs e) { //Make sure the input box has a value if (txtInput.Text.Length != 0) { //Assign the temp holder to the value of the //input box converted to a Double tmpValue = System.Double.Parse(txtInput.Text); //Perform a (1 divided by value calculations) tmpValue = 1 / tmpValue; //Display the results in the input box txtInput.Text = tmpValue.ToString(); //Toggle the decimal flag hasDecimal = false; } } private void button19_Click(object sender, EventArgs e) { //Check the input status if (inputStatus) { //If true //Now check to make sure our //input box has a value if (txtInput.Text.Length >= 1) { //Add our zero txtInput.Text += button19.Text; } } } private void button20_Click(object sender, EventArgs e) { //Check the input status if (inputStatus) { //Check to make sure theres a value in the input box if (txtInput.Text.Length > 0) { //Set the temp holder //Its value will be (-1 times the value in the input box) valHolder1 = -1 * System.Double.Parse(txtInput.Text); //Display the value to the user txtInput.Text = valHolder1.ToString(); } } } private void button21_Click(object sender, EventArgs e) { //Check for input status (we want true) if (inputStatus) { //Check if it already has a decimal (if it does then do nothing) if (!hasDecimal) { //Check to make sure the length is > than 1 //Dont want user to add decimal as first character if (txtInput.Text.Length != 0) { //Make sure 0 isnt the first number if (txtInput.Text != "0") { //It met all our requirements so add the zero txtInput.Text += button21.Text; //Toggle the flag to true (only 1 decimal per calculation) hasDecimal = true; } } else { //Since the length isnt > 1 //make the text 0. txtInput.Text = "0."; } } } } private void button22_Click(object sender, EventArgs e) { //Make sure out input box has a value if (txtInput.Text.Length != 0) { //Check the value of our function flag if (calcFunc == string.Empty) { //Flag is empty //Assign the value in our input //box to our holder valHolder1 = System.Double.Parse(txtInput.Text); //Empty the input box txtInput.Text = string.Empty; } else { //Flag isnt empty //Call our calculate totals method CalculateTotals(); } //Assign a value to our calc function flag calcFunc = "Add"; //Toggle the decimal flag hasDecimal = false; } } private void button23_Click(object sender, EventArgs e) { if (txtInput.Text.Length != 0 && valHolder1 != 0) { //Call the calculate totals method CalculateTotals(); //Clear the calcFunction value calcFunc = string.Empty; //Toggle the decimal flag hasDecimal = false; } } }
注意 string.Empty。 这是 System.Entry 反汇编
[Serializable] internal sealed class Empty : ISerializable { // Fields public static readonly Empty Value = new Empty(); // Methods private Empty() { } [SecurityCritical] public void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) { throw new ArgumentNullException("info"); } UnitySerializationHolder.GetUnitySerializationInfo(info, 1, null, null); } public override string ToString() { return string.Empty; } }