.NET CLI创建项目

使用 .NET CLI 工具构建并运行 C# 项目

我们回到C:\csdemo 目录,上节课的HelloWorld目录的上一级目录。

创建一个新的目录,mkdir HelloWorld2 你也可以直接用右键新建文件夹方式或者

然后命令行进入到此目录中 cd HelloWorld2

执行下方命令创建全新控制台应用。console 是 .NET CLI 用于生成程序的内置模板名称:

dotnet new consoleCode language: JavaScript (javascript)
C:\csdemo>mkdir HelloWorld

C:\csdemo>cd HelloWorld

C:\csdemo\HelloWorld>cd ..

C:\csdemo>mkdir HelloWorld2

C:\csdemo>cd HelloWorld2

C:\csdemo\HelloWorld2>dotnet new console
已成功创建模板“控制台应用”。

正在处理创建后操作...
正在还原 C:\csdemo\HelloWorld2\HelloWorld2.csproj:
已成功还原。Code language: JavaScript (javascript)

备注:.NET CLI 提供多种程序模板,可用来创建 ASP.NET Web 网站、Windows Forms 图形桌面程序等不同类型项目。

创建完项目,打开项目可以看到

你也可以在终端中使用dir命令,查看文件夹内的所有文件

读者会看到,目录中多了以上三个文件和文件夹

  1. 项目文件:HelloWorld2.csproj
  2. C# 源代码文件:Program.cs
  3. 文件夹:obj(存放编译配置、缓存等 .NET 编译运行所需数据)

用记事本打开HelloWorld2.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>
Code language: HTML, XML (xml)

由于小编电脑还安装了.NET 10 所以默认创建的项目是基于net10.0

打开 Program.cs,内置默认代码

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");Code language: C# (cs)

编译并运行程序,执行命令

dotnet run

运行成功后,控制台输出文本:Hello World!

有些有编程基础的读者,可能有个疑问,不是说程序的入口是main函数吗,为什么这里没有看到main函数的。

其实这是.NET 的一个新特性,叫顶层语句(无需Main),新版 C# 语法糖:极简代码场景下编译器会自动生成隐藏的 Main 入口,省去样板代码

其实上面的代码完整应该如下:

using System;

namespace HelloWorld2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}Code language: C# (cs)

再次运行dotnet run 命令

代码照样正常编译和运行。

<Project Sdk="Microsoft.NET.Sdk">:声明使用 .NET 新式 SDK 项目格式

<OutputType>Exe</OutputType>:标识项目编译后生成可执行程序(控制台程序必备)

<TargetFramework>net10.0</TargetFramework>:指定项目基于 .NET 10.0 框架运行

// 引入系统内置命名空间,Console控制台类就存放在System中
using System;

// 定义项目专属命名空间HelloWorld2,用于隔离不同项目/类,避免类名冲突
namespace HelloWorld2
{
    // 定义程序主类,.NET控制台模板默认命名为Program
    class Program
    {
        /// <summary>
        /// C#程序唯一入口方法,程序启动时会自动执行这个方法
        /// static:静态方法,不需要实例化Program类就能直接调用
        /// void:无返回值,程序执行完不返回数据给操作系统
        /// string[] args:字符串数组,接收运行程序时传入的命令行参数
        /// </summary>
        static void Main(string[] args)
        {
            // Console.WriteLine():控制台输出方法
            // WriteLine代表输出文本后自动换行
            // "Hello World!" 是要打印到命令行窗口的字符串内容
            Console.WriteLine("Hello World!");
        }
    }
}Code language: C# (cs)

顶部第一句代码 引入了System这个命名空间,这个命名空间下面的类就可以在Program代码中使用了,可以省略不用写System。如果不应用,则需要写全名。

上面调用的Console.WriteLine 的Console就是类名,WriteLine就是方法名,参考上图右上侧。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注