购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 第一个C#程序

以下程序计算12乘以30,并将结果360输出到屏幕上。其中双斜线“ // ”表示后续内容是注释:

上述程序由两个语句构成。在C#中,语句按顺序执行,每个语句都以分号结尾。第一个语句计算表达式12 * 30的值,并把结果存储到变量 x 中,该变量是一个32位整数类型( int )的变量。第二个语句调用 Console 类(定义在 System 命名空间下)的 WriteLine 方法,将变量 x 的值输出到屏幕上的文本窗口中。

方法执行特定功能;类将函数成员和数据成员聚合在一起形成面向对象的构建单元。 Console 类将处理命令行的输入输出功能聚合在一起,例如 WriteLine 方法。类是一种类型,我们会在2.3节进行介绍。

程序最外层是命名空间,类型组织在各个命名空间中。许多常用的类型——包括 Console 类——都在 System 命名空间下,.NET中的库组织在嵌套的命名空间中。例如, System.Text 命名空间中的类型用于处理文本而 System.IO 命名空间中的类型则用于处理输入和输出。

在每次使用 Console 类时都添加 System 命名空间进行修饰会显得累赘。此时可以使用 using 指令导入命名空间来避免烦冗的代码:

编写高层函数来调用低层次函数是一种基本的代码复用手段。可重构(refactor)上述程序,使用可重用的方法 FeetToInches 来计算某个整数乘以12的结果:

上述方法中的一系列语句被成对的大括号包围起来,称为语句块(statement block)。

方法可以通过参数来接收调用者输入的数据,并通过指定的返回类型向调用者返回输出数据。上述代码中的 FeetToInches 方法包含一个用于输入英尺的参数和一个用于输出英寸的返回类型:

示例中的字面量30和100是传递给 FeedToInches 方法的实际参数(argument)。

如果方法没有接收到输入,则应使用空括号。如果不返回任何结果,则应使用 void 关键字:

方法是C#中的诸多种类函数之一。另一种函数是我们用来执行乘法运算的*运算符。其他的函数种类还包括构造器、属性、事件、索引器和终结器。

编译

C#编译器能够将一系列以.cs为扩展名的源代码文件编译成程序集,程序集是.NET中的打包和部署单元。程序集可以是一个应用程序也可以是一个库。普通的控制台程序或Windows应用程序包含一个入口点(entry point),而库则没有。库可以被应用程序或其他的库调用(引用)。.NET 5就是由一系列库(及运行时环境)组成的。

上一节中的每一个程序都是直接由一系列语句(称为顶级语句)开头的。当存在顶级语句时,控制台程序或Windows应用程序将隐式创建入口点(若没有顶级语句,则Main方法将作为应用程序的入口点——请参见2.3.2节)

与.NET Framework不同,.NET 6程序集并没有 .exe 扩展名。NET 6应用程序构建之后生成的 .exe 文件只是一个负责启动 .dll 程序集的原生加载器。这个 .exe 文件是和平台相关的。

.NET 5能够创建自包含部署程序,它包含加载器、程序集以及.NET运行时本身。而以上内容均包含在一个单一 .exe 文件中。

dotnet 工具(在Windows下则为dotnet.exe)是一个用于管理.NET源代码和二进制文件的命令行工具。该工具可以像集成开发环境(例如Visual Studio和Visual Studio Code)那样构建或启动程序。

dotnet 工具可通过安装.NET 5 SDK或安装Visual Studio获得,其默认安装位置在Windows操作系统上位于 %ProgramFiles%/dotnet ,在Ubuntu Linux上位于 /usr/bin/dotnet

dotnet 工具在编译应用程序时需要指定一个工程文件(project file)及一个或者多个C#代码文件。以下命令将创建一个控制台应用程序的基本结构:

上述命令将创建名为 MyFirstProgram 的子目录,并在其中创建名为 MyFirstProgram.csproj 的工程文件,以及包含 Main 方法的 Program.cs 代码文件,其中 Main 方法将在控制台输出“Hello World”。

MyFirstProgram 目录执行以下命令将构建并启动上述应用程序:

如果仅仅希望构建应用程序,但不执行,则可以执行以下命令:

构建生成的程序集将保存在 bin/debug 子目录下。

我们将在第17章详细介绍程序集。 abObATcsNdCDwmNHaaVNrsuuEerRQgmCY0jhSZtCuq1ALP88GTo5n9kF0YinWGeW

点击中间区域
呼出菜单
上一章
目录
下一章
×