教程:创建一个简单的 C# 控制台应用程序

您所在的位置:网站首页 eniac只能存储简单的控制程序代码 教程:创建一个简单的 C# 控制台应用程序

教程:创建一个简单的 C# 控制台应用程序

2024-07-09 14:36| 来源: 网络整理| 查看: 265

教程:在 Visual Studio 中创建一个简单的 C# 控制台应用(第 1 部分,共 2 部分) 项目11/24/2023

在本教程中,你将使用 Visual Studio 创建和运行 C# 控制台应用,并探索 Visual Studio 集成开发环境 (IDE) 的部分功能。 本教程是由两个部分构成的系列教程的第一部分。

在本教程中,请完成以下任务:

创建一个 Visual Studio 项目。 创建一个 C# 控制台应用。 调试应用。 关闭应用。 检查完整的代码。

在第 2 部分,你将扩展此应用以添加更多项目、了解调试技巧和引用第三方包。

必备条件

必须安装 Visual Studio。

如果尚未安装 Visual Studio,请转到 Visual Studio 下载页免费安装。

创建项目

若要开始,请创建一个 C# 应用程序项目。 项目类型随附了所需的全部模板文件。

打开 Visual Studio,然后在“开始”窗口中选择“创建新项目”。

在“创建新项目”窗口中,从“语言”列表中选择“C#”。 接下来,从“平台”列表中选择“Windows”,然后从“项目类型”列表中选择“控制台”。

应用语言、平台和项目类型筛选器之后,选择“控制台应用程序”模板,然后选择“下一步” 。

注意

如果未看到“控制台应用程序”模板,请选择“安装更多工具和功能” 。

在 Visual Studio 安装程序中,选择“.NET Core 跨平台开发”工作负载。

在 Visual Studio 安装程序中,选择“修改”。 系统可能会提示你保存工作内容。 选择“继续”以安装该工作负载。

返回到“创建项目”过程中的步骤 2。

在“配置新项目”窗口中,在“项目名称”框中键入或输入“计算器”。 然后选择下一步。

在“其他信息”窗口中,验证“目标框架”字段中是否显示了“.NET Core 3.1”。 然后选择“创建”。

Visual Studio 随即打开新项目,其中包含默认的“Hello World”代码。 如果要在编辑器中查看它,可以在“解决方案资源管理器”窗口中选择代码文件“Program.cs”,该窗口通常位于 Visual Studio 的右侧。

默认“Hello World”代码调用 WriteLine 方法在控制台窗口中显示文本字符串“Hello, World!”。 如果按 F5,则可以在调试模式下运行默认程序。 在调试器中运行应用程序后,控制台窗口将保持打开状态。 按任意键关闭控制台窗口。

打开 Visual Studio,然后在“开始”窗口中选择“创建新项目”。

在“创建新项目”窗口中选择“所有语言”,然后从下拉列表中选择“C#” 。 从“所有平台”列表中选择“Windows”,然后从“所有项目类型”列表中选择“控制台” 。

应用语言、平台和项目类型筛选器后,选择“控制台应用”模板,然后选择“下一步” 。

注意

如果未看到“控制台应用”模板,请选择“安装更多工具和功能” 。

在 Visual Studio 安装程序中,选择“.NET 桌面开发”工作负载。

在 Visual Studio 安装程序中,选择“修改”。 系统可能会提示你保存工作内容。 选择“继续”以安装该工作负载。

返回到“创建项目”过程中的步骤 2。

在“配置新项目”窗口中,在“项目名称”框中键入“Calculator”,然后选择“下一步” 。

在“其他信息”窗口中,为“目标框架”字段选择“.NET 8.0”。 然后选择“创建”。

Visual Studio 随即打开新项目,其中包含默认的“Hello World”代码。 如果要在编辑器中查看它,可以在“解决方案资源管理器”窗口中选择代码文件“Program.cs”,该窗口通常位于 Visual Studio 的右侧。

单个代码语句调用 WriteLine 方法在控制台窗口中显示文本字符串“Hello, World!”。 如果按 F5,则可以在调试模式下运行默认程序。 在调试器中运行应用程序后,控制台窗口将保持打开状态。 按任意键关闭控制台窗口。

注意

从 .NET 6 开始,使用控制台模板的新项目会生成与以前版本不同的代码。 若要了解详细信息,请参阅新的 C# 模板生成顶级语句页。

创建应用

在本部分中,你将完成以下任务:

探索 C# 中的一些基本整数数学运算。 添加代码以创建一个基本计算器应用。 调试该应用,以查找并修复错误。 优化代码,使其更高效。 探索整数数学运算

首先在 C# 中进行一些基本的整数数学运算。

在代码编辑器中,删除默认“Hello World”代码。

具体而言,删除显示 Console.WriteLine("Hello World!"); 的行。

在其位置输入以下代码:

int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();

请注意,输入代码时,Visual Studio 中的 IntelliSense 功能会提供自动完成该条目的选项。

选择“计算器”旁的绿色“开始”按钮以生成并运行程序,或按“F5”。

随即会打开控制台窗口,显示 42 + 119 的总和,即 161。

(可选)可以更改运算符来更改结果。 例如,可以将 int c = a + b; 代码行中的 + 运算符更改为 - 进行减法运算,更改为 * 进行乘法运算,或更改为 / 进行除法运算。 然后,运行该程序时,结果也会改变。

关闭控制台窗口。

在“解决方案资源管理器”的右侧窗格中选择“Program.cs”,以在代码编辑器中显示该文件

在代码编辑器中,替换显示了 Console.WriteLine("Hello World!"); 的默认“Hello World”代码。

将该行替换为以下代码:

int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();

如果你输入代码,Visual Studio IntelliSense 功能将提供自动完成该条目的选项。

若要生成并运行应用,请按 F5,或者在顶部工具栏中选择名称“Calculator”旁边的绿色箭头 。

随即会打开控制台窗口,其中显示了 42 + 119 的总和,即 161。

关闭控制台窗口。

(可选)可以更改运算符来更改结果。 例如,可以将 int c = a + b; 代码行中的 + 运算符更改为 - 进行减法运算,更改为 * 进行乘法运算,或更改为 / 进行除法运算。 运行应用时,结果会相应地更改。

添加代码以创建计算器

向项目添加一组更复杂的计算器代码以继续操作。

在代码编辑器中,将 Program.cs 中的所有代码替换为以下新代码:

using System; namespace Calculator { class Program { static void Main(string[] args) { // Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey(); } } }

选择“Calculator”按钮或按 F5 运行应用 。

控制台窗口即会打开。

在控制台窗口中,按照提示将数字 42 和 119 相加 。

应用应如以下屏幕快照所示:

在代码编辑器中,将 Program.cs 中的所有代码替换为以下新代码:

// Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey();

选择“Calculator”按钮或按 F5 运行应用 。

控制台窗口即会打开。

在控制台窗口中,按照提示将数字 42 和 119 相加 。

应用应如以下屏幕快照所示:

添加小数运算功能

现在调整代码以添加更多功能。

当前的计算器应用仅接受并返回整数。 例如,如果运行该应用,将数字 42 除以数字 119,则结果为 0,这并不精确。

若要修复代码以通过处理小数来提高精度,请执行以下操作:

在 Visual Studio 编辑器中的 Program.cs 内,按 Ctrl+H 打开“查找和替换”控件。

在该控件中键入“int”,在“替换”字段中键入“float” 。

在该控件中选择“匹配大小写”和“全字匹配”对应的图标,或者按 Alt+C 和 Alt+W 。

选择“全部替换”图标或按 Alt+A 运行搜索和替换 。

再次运行计算器应用,将数字 42 除以数字 119 。

该应用现在返回的是小数而不是 0。

现在,应用可以生成小数结果。 对代码再做一些调整,使应用也可以计算小数。

使用“查找和替换”控件将 float 变量的每个实例更改为 double,并将 Convert.ToInt32 方法的每个实例更改为 Convert.ToDouble。

运行计算器应用,将数字 42.5 除以数字 119.75 。

该应用现在接受小数值,并返回更长的小数作为结果。

在修改代码部分,你将减少结果中的小数位数。

调试应用

你改进了基本计算器应用,但该应用目前还不能处理异常,例如用户输入错误。 例如,如果用户尝试除以零或者输入意外的字符,则应用可能会停止工作、返回错误或返回意外的非数值结果。

现在来演练一些常见的用户输入错误,在调试程序中找到它们(若其出现),并在代码中修复它们。

提示

有关调试器及其工作原理的详细信息,请参阅初步了解 Visual Studio 调试器。

修复“被零除”错误

如果你尝试将数字除以零,则控制台应用可能会冻结,并在代码编辑器中显示哪些内容是错误的。

注意

有时,应用不会冻结且调试器不会显示“被零除”错误。 相反,应用可能会返回意外的非数字结果,如无穷符号。 以下代码修复仍然适用。

现在更改代码以解决此错误。 在 Program.cs 中,将 case "d": 的代码替换为以下代码:

// Ask the user to enter a non-zero divisor until they do so. while (num2 == 0) { Console.WriteLine("Enter a non-zero divisor: "); num2 = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; }

替换代码后,包含 switch 语句的部分应如以下屏幕截图所示:

现在,将任意数字除以零时,该应用会要求输入另一个数字,并且在你提供非零数字之前,它会不断地要求你这样做。

修复“格式”错误

如果在应用要求输入数字字符时你输入了字母字符,应用将会冻结。 Visual Studio 将显示代码编辑器中的哪些内容是错误的。

若要防止此异常,可以重构先前输入的代码。

修改代码

可将应用分为两个类:Calculator 和 Program,而不是依赖于 program 类来处理所有代码。

Calculator 类处理大量的计算工作,而 Program 类则会处理用户界面和错误处理工作。

现在就开始吧。

在 Program.cs 中,删除所有内容并添加以下新的 Calculator 类:

class Calculator { public static double DoOperation(double num1, double num2, string op) { double result = double.NaN; // Default value is "not-a-number" if an operation, such as division, could result in an error. // Use a switch statement to do the math. switch (op) { case "a": result = num1 + num2; break; case "s": result = num1 - num2; break; case "m": result = num1 * num2; break; case "d": // Ask the user to enter a non-zero divisor. if (num2 != 0) { result = num1 / num2; } break; // Return text for an incorrect option entry. default: break; } return result; } }

另外还添加新的 Program 类,如下所示:

class Program { static void Main(string[] args) { bool endApp = false; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); while (!endApp) { // Declare variables and set to empty. string numInput1 = ""; string numInput2 = ""; double result = 0; // Ask the user to type the first number. Console.Write("Type a number, and then press Enter: "); numInput1 = Console.ReadLine(); double cleanNum1 = 0; while (!double.TryParse(numInput1, out cleanNum1)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput1 = Console.ReadLine(); } // Ask the user to type the second number. Console.Write("Type another number, and then press Enter: "); numInput2 = Console.ReadLine(); double cleanNum2 = 0; while (!double.TryParse(numInput2, out cleanNum2)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput2 = Console.ReadLine(); } // Ask the user to choose an operator. Console.WriteLine("Choose an operator from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); string op = Console.ReadLine(); try { result = Calculator.DoOperation(cleanNum1, cleanNum2, op); if (double.IsNaN(result)) { Console.WriteLine("This operation will result in a mathematical error.\n"); } else Console.WriteLine("Your result: {0:0.##}\n", result); } catch (Exception e) { Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") endApp = true; Console.WriteLine("\n"); // Friendly linespacing. } return; } }

选择“Calculator”按钮或按 F5 运行应用 。

按照提示,用数字 42 除以数字 119 。 结果应类似于以下屏幕截图:

现在可以运行更多计算,直到选择关闭控制台应用。 结果中的小数位数也会减少。 如果输入错误的字符,则会得到相应的错误响应。

关闭应用程序

如果尚未关闭计算器应用,现在请将其关闭。

关闭 Visual Studio 中的输出窗格。

在 Visual Studio 中,按 Ctrl+S 保存应用 。

添加 Git 源代码管理

现在你已经创建了应用,可能需要将它添加到 Git 存储库。 Visual Studio 通过 Git 工具简化了该过程,你可直接从 IDE 中使用这些工具。

提示

Git 是使用最广泛的新式版本控制系统,因此无论你是专业开发人员,还是正在学习如何编码,Git 都非常有用。 如果你是刚刚接触 Git,可访问 https://git-scm.com/ 网站开始了解。 在这里,你能找到速查表、畅销在线图书和 Git 基础知识视频。

若要将代码与 Git 关联,需要首先创建一个新的 Git 存储库来容纳代码:

在 Visual Studio 右下角的状态栏中,选择“添加到源代码管理”,然后选择“Git” 。

在“创建 Git 存储库”对话框中,登录到 GitHub。

存储库名称根据你的文件夹位置自动填充。 默认情况下,新存储库是专用的,这意味着只有你可以访问它。

提示

无论存储库是公用的还是专用的,都最好将代码的远程备份安全地存储在 GitHub 上。 即使你不与团队合作,也可使用任意计算机上在远程存储库中访问你的代码。

选择“创建并推送”。

创建存储库后,状态栏中会显示状态详细信息。

带箭头的第一个图标显示当前分支中的传出/传入提交数。 可以使用此图标来拉取任何传入提交或推送任何传出提交。 还可选择先查看这些提交。 为此,请选择图标,然后选择“查看传出/传入”。

带铅笔的第二个图标显示代码的未提交更改数。 可选择此图标,在“Git 更改”窗口中查看这些更改。

若要详细了解如何在应用中使用 Git,请参阅 Visual Studio 版本控制文档。

查看:代码完成

在本教程中,你对计算器应用做出了许多更改。 该应用现在可以更高效地处理计算资源,并可处理大多数的用户输入错误。

以下是完整代码,全部显示在同一个位置:

class Calculator { public static double DoOperation(double num1, double num2, string op) { double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error. // Use a switch statement to do the math. switch (op) { case "a": result = num1 + num2; break; case "s": result = num1 - num2; break; case "m": result = num1 * num2; break; case "d": // Ask the user to enter a non-zero divisor. if (num2 != 0) { result = num1 / num2; } break; // Return text for an incorrect option entry. default: break; } return result; } } class Program { static void Main(string[] args) { bool endApp = false; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); while (!endApp) { // Declare variables and set to empty. string numInput1 = ""; string numInput2 = ""; double result = 0; // Ask the user to type the first number. Console.Write("Type a number, and then press Enter: "); numInput1 = Console.ReadLine(); double cleanNum1 = 0; while (!double.TryParse(numInput1, out cleanNum1)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput1 = Console.ReadLine(); } // Ask the user to type the second number. Console.Write("Type another number, and then press Enter: "); numInput2 = Console.ReadLine(); double cleanNum2 = 0; while (!double.TryParse(numInput2, out cleanNum2)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput2 = Console.ReadLine(); } // Ask the user to choose an operator. Console.WriteLine("Choose an operator from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); string op = Console.ReadLine(); try { result = Calculator.DoOperation(cleanNum1, cleanNum2, op); if (double.IsNaN(result)) { Console.WriteLine("This operation will result in a mathematical error.\n"); } else Console.WriteLine("Your result: {0:0.##}\n", result); } catch (Exception e) { Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") endApp = true; Console.WriteLine("\n"); // Friendly linespacing. } return; } } 后续步骤

继续学习本教程的第二部分:

教程第 2 部分:扩展和调试 C# 控制台应用



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3