"Top-level statements must precede namespace and type declarations."
"최상위 문장은 네임스페이스나 타입 선언보다 앞에 있어야 합니다."
라고 오류가 뜬다.
해결방법
>>> 맨앞에 두거나 Main 메서드 안에 넣으면 오류가 없어진다.
Top-level statements (최상위 문)
(C# 9이상)
main 매서드 안에 들어가지 않아도 맨위에 적을 시 자동으로 main 메서드 안에 넣은것과 같은 효과를 준다.
예전엔 프로젝트를 생성하면 Main() 메서드가 생겨서 그 안에 코드를 넣어서 실행시켜야 했다면
지금은 Main()메서드 없이 1줄로 사용가능하다.
1줄로 보이지만 컴파일하면
class Program
{
static void Main()
{
Console.WriteLine("Hello");
}
}
Main()안에 들어가있는 걸 볼 수 있다.
namespace (네임스페이스)
같은 이름의 클래스가 여러 개 있어도 충돌하지 않게 구분해주는 역할을 한다.
class Animal {
public void Speak() => Console.WriteLine("I'm an animal!");
}
class Animal {
public void Speak() => Console.WriteLine("나는 또 다른 동물!");
}
class 이름이 중복될 때
Animal
Animal
namespace Zoo {
class Animal {
public void Speak() => Console.WriteLine("I'm from the Zoo!");
}
}
namespace Farm {
class Animal {
public void Speak() => Console.WriteLine("I'm from the Farm!");
}
}
namespace로 구분해준다.
Zoo - Animal
Farm - Animal
var zooAnimal = new Zoo.Animal();
zooAnimal.Speak(); // → I'm from the Zoo!
var farmAnimal = new Farm.Animal();
farmAnimal.Speak(); // → I'm from the Farm!
불러올 때는
Zoo.Animal
Farm.Animal
using System;
using Sysem도 .NET 프레임워크의 기본 네임스페이스다. 선언해두면
System.Console.WriteLine("Hello");
이 문장을
Console.WriteLine("Hello");
이렇게 짧게 쓸 수 있다.
왜 씀?
큰 프로젝트에서 네임스페이스를 이용하면
1. 이름 충돌이 방지되고
2. 코드가 정리되며
3. 관리가 용이해진다.
'내일배움캠프 Unity 9기 > TIL' 카테고리의 다른 글
[Unity/TIL] - static (0) | 2025.04.22 |
---|---|
[Unity/TIL] - 오류해결모음 (0) | 2025.04.18 |
[Unity/TIL] - 네이밍규칙(코딩스탠다드) (0) | 2025.04.15 |
[Unity/TIL] - C# 기본문법 (0) | 2025.04.14 |
[Unity/TIL] - 레벨에 따라 게임 난이도 조정하기 (0) | 2025.04.11 |