최상위 문은 C# 9.0부터 추가된 기능이다.
.NET 콘솔앱 프로젝트를 만들었더니 평소 보던 템플릿은 사라지고
// See <https://aka.ms/new-console-template> for more information
Console.WriteLine("Hello, World!");
한 줄만 남았다.
당황하여 주석의 링크로 들어가니 최상위 문에 대한 설명이 있었다.
.NET 6+의 C# 콘솔 앱 템플릿 변경 내용 - .NET
.NET 6.0부터 추가 된 기능으로 처음 보기엔 다소 복잡해 보이는 코드를 없애고 Main에 해당되는 부분만 작성하면 된다는 것.
그러나 나를 포함한 이전 버전을 사용하던 사람들에겐 불편할 거라 생각한다…
다행히, 최상위 문을 사용하지 않을 방법이 있다.
새 프로젝트 생성 중에 최상위 문 사용 여부를 결정할 수 있다.
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
이제 우리가 알던 모습으로 돌아왔다.
그러나 아직도 어색한 부분이 있다.
using이 보이지 않는다.
암시적 using (implicit using)
.csproj 파일로 들어가보자.
암시적 using은 C# 10버전 부터 추가 된 기능이다.
ImplicitUsings 줄을 살펴보면 disable, enable을 설정할 수 있다. (본인은 이미 disable로 전환)
using System;
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
이제 다시 Program.cs 파일로 돌아오면 Console에 빨간 줄이 뜰 것이다.
using System을 추가해서 이전처럼 사용하면 된다.
최상위 문에 대한 자세한 설명은 아래 링크에서 확인할 수 있다.