You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#警告CS7022咨询:自定义Main方法为何被忽略?

问题原因

从.NET 6开始,控制台应用模板默认启用了顶级语句(C# 9及以上版本特性)。执行dotnet new console创建项目时,模板生成的Program.cs已经包含全局代码形式的入口:

Console.WriteLine("Hello, World!");

编译器会将这段全局代码作为程序的入口点,因此你自定义的Hello.Main()方法会被忽略,进而触发CS7022警告。

解决方法

方法一:改用顶级语句(推荐)

删除代码中的命名空间、类和Main方法,只保留核心逻辑:

Console.WriteLine("hello world");

这种写法符合模板默认语法,警告会自动消失,运行时可正常输出目标内容。

方法二:保留传统Main入口

如果你偏好传统的程序结构,有两种实现方式:

  1. 创建项目时直接指定:
    执行创建命令时添加--use-program-main参数:
dotnet new console -o HelloCS --force --use-program-main

生成的项目默认包含带Main方法的Program类,直接替换成你的代码即可。

  1. 修改现有项目文件:
    打开项目目录下的HelloCS.csproj,添加<ImplicitUsings>disable</ImplicitUsings>配置:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>disable</ImplicitUsings>
    <Nullable>disable</Nullable>
  </PropertyGroup>

</Project>

保存后,编译器会识别你的Hello.Main()为程序入口点,警告随之消失。

内容的提问来源于stack exchange,提问作者SPlatten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:42:12