• VS2022创建控制台应用程序后没有Main了,如何显示Main?


    问题描述

    用VS2022创建一个控制台应用后,没有名称空间和Main函数了,只有一个WriteLine,如下所示。

    // See https://aka.ms/new-console-template for more information
    Console.WriteLine("Hello, World!");
    
    • 1
    • 2

    原因

    首先说明一下原因,在VS2022中,创建控制台应用主要使用的框架是.NET6.0,而这个只有一个WriteLine语句的控制台,就是.NET6.0的新模板,使用了顶级语句这个功能。
    只有.Net5.0及其以下版本,才会生成以前带Main和名称空间的模板。
    具体关于顶级语句的讲解这篇文章并不涉及,感兴趣的可以去自行学习。
    本篇文章主要讲解如何创建以前的模板。

    解决方案

    创建以前的模板,只需要在创建控制台应用的时候,在选择框架的页面,勾选“不使用顶级语句”即可。
    在这里插入图片描述

    简单的顶级语句试用

    顶级语句是指在C#中可以直接在源文件中编写的语句,而不需要包含在任何类或方法内部。它们的引入主要是为了简化小型程序的编写和调试。

    在以前的C#版本中,我们必须将代码放在类和方法的结构中,要定义一个可执行的程序,我们需要在一个类中编写一个名为Main的方法,并在其中编写我们的代码。然而,这样的结构对于一些小型程序来说可能过于繁琐,并且增加了程序的复杂性。

    从C# 9.0开始,我们可以使用顶级语句来编写更简洁的程序。顶级语句通常位于源文件的最外层,并且我们不需要显式定义类和方法,可以直接编写我们的代码。

    顶级语句的使用非常简单。可以在顶级语句中使用using语句引入命名空间,可以定义变量和常量,可以调用方法,可以进行计算等等。编译器会自动将这些顶级语句转换为类和方法的结构,并按照一定的规则组织代码。

    需要注意的是,只有一个编译单元可具有顶级语句。这是为了保持代码的可读性和一致性。如果我们想编写更复杂的程序,仍然需要使用类和方法的结构来组织代码。
    在这里插入图片描述
    顶级语句的引入使得编写小型程序更加简洁和直观。不再需要显示定义类和方法,我们可以更直接地表达我们的意图。这对于原型开发、小型脚本和快速测试非常有用。

    计算器

    接下来讲解一下如何使用顶级语句编写一个简单的计算器程序,使大家更好的习惯顶级语句。计算器让用户输入两个数字并计算它们的和,代码如下所示:
    在这里插入图片描述

    Console.WriteLine("没错,是计算器!");
    
    Console.Write("请输入第一个数字:");
    #pragma warning disable CS8604 // 引用类型参数可能为 null。
    int num1 = int.Parse(Console.ReadLine());
    
    Console.Write("请输入第二个数字:");
    int num2 = int.Parse(Console.ReadLine());
    #pragma warning restore CS8604 // 引用类型参数可能为 null。
    
    int sum = num1 + num2;
    Console.WriteLine($"数字 {num1}{num2} 的和为 {sum}。");
    
    Console.WriteLine("结束!");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    以上代码在顶级位置使用 Console.WriteLine 输出欢迎消息。接下来,程序提示用户输入两个数字,并使用 int.Parse 将输入的字符串转换为整数值。

    然后,程序计算这两个数字的和,并使用字符串插值语法将结果打印出来。

    其他文章

    C#如何获取当前主机的局域网IP
    C#实现局域网之间互相传递消息

  • 相关阅读:
    Linux zip命令:压缩文件或目录
    QImage函数setAlphaChannel
    零命令使用git+TortoiseGit工具拉取推送到gitee网站
    【MySQL】数据库基础
    css实现磨砂效果(filter 与 backdrop-filter 的对比分析)
    24.flink windows 窗口,彻底站起来。
    【css】H8_定位
    数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
    Go 之烧脑的接口
    http协议的请求方法 —— GET、POST方法及其区别
  • 原文地址:https://blog.csdn.net/weixin_44499065/article/details/133253014