팁 (조언)
소프트웨어 개발이 새로운가요? 먼저 시작하기 자습서부터 시작하세요. 프로그램 구조에 대해 알아보기 전에 첫 번째 C# 프로그램을 작성하는 방법을 안내합니다.
다른 언어로 경험하신 적 있나요? C#관련 구문에 대한 시작 섹션을 건너본 다음 여기로 돌아올 수 있습니다.
이러한 핵심 구성 요소에서 C# 프로그램을 빌드합니다. 네임스페이스는 형식, 형식(클래스, 구조체, 인터페이스, 열거형 및 대리자)을 구성하여 동작과 데이터를 정의하고 문과 식은 런타임에 작업을 수행합니다. 진입점을 구성하는 방법은 선택한 애플리케이션 스타일에 따라 달라집니다.
애플리케이션 스타일 선택
C# 프로그램을 만들 때는 C# 프로그램을 구성하는 방법에 대해 두 가지 독립적인 선택을 합니다.
-
파일 기반 또는 프로젝트 기반인가요?
- 파일 기반 앱은 프로젝트 파일이 없는 단일
.cs파일에서 실행됩니다. - 프로젝트 기반 앱은
.csproj파일을 사용하며 여러 원본 파일을 포함할 수 있습니다.
- 파일 기반 앱은 프로젝트 파일이 없는 단일
-
최상위 수준의 문 또는
Main메서드?- 최상위 문을 사용하면 파일 맨 위에 직접 실행 코드를 작성할 수 있습니다.
- 메서드가 진입점을
Main명시적 정적 메서드로 래핑합니다.
프로젝트 기반 앱과 파일 기반 앱은 모두 진입점 스타일을 지원합니다.
파일 기반 앱과 프로젝트 기반 앱 비교
C# 14 및 .NET 10부터 파일 기반 앱을 사용하면 프로젝트 파일 없이 단일 *.cs 파일에 포함된 프로그램을 실행할 수 있습니다. 다음 코드를 hello-world.cs라는 이름의 파일에 저장한 후 dotnet run hello-world.cs 또는 dotnet hello-world.cs로 실행합니다.
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
메모
이 #! 줄을 사용하면 Unix 운영 체제에서 파일을 직접 실행할 수 있습니다(예: ./hello-world.cs). 이렇게 하려면 실행 권한을 설정해야 합니다(chmod +x <file>).
파일 기반 앱은 모든 C# 구문을 지원하며 전처리기 지시문을 사용하여 빌드 시스템을 구성할 수 있습니다. 작은 명령줄 유틸리티, 프로토타입 및 실험에 파일 기반 앱을 사용합니다. 파일 기반 앱은 디렉터리의 단일 파일로 구성됩니다.
my-app/
└── hello-world.cs
프로젝트 기반 앱은 .csproj 파일 및 .NET CLI 명령 및 dotnet new 워크플로를 dotnet builddotnet run사용합니다. 프로그램이 여러 파일에 걸쳐 있거나 세분화된 빌드 구성이 필요한 경우 프로젝트 기반 앱을 선택합니다. 프로젝트 기반 앱에는 하나 이상의 원본 파일과 함께 프로젝트 파일이 포함됩니다.
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
파일 기반 앱이 증가하는 경우 쉽게 프로젝트 기반 앱으로 변환할 수 있습니다. 기존 원본 파일에서 프로젝트 파일을 생성하려면 실행 dotnet project convert 합니다.
앱에 처음부터 여러 원본 파일이 필요하다는 것을 알고 있는 경우 프로젝트 기반 앱으로 시작합니다. 변환 단계를 방지하고 코드를 즉시 별도의 파일로 구성할 수 있습니다.
최상위 문과 메서드 비교 Main
최상위 문을 사용하면 클래스 및 Main 메서드에 래핑하지 않고 실행 코드를 한 파일에 직접 작성할 수 있습니다. 이 스타일은 .를 사용하여 새 콘솔 앱을 만들 때 기본값입니다 dotnet new console. 다음 예제는 최상위 문을 사용하는 최신 C# 프로그램을 보여줍니다.
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
프로젝트의 한 파일에만 최상위 문이 있을 수 있으며 진입점은 해당 파일의 첫 번째 프로그램 텍스트 줄입니다. 더 큰 프로그램을 빌드할 때 더 많은 프로그램 요소를 포함합니다.
명시적 정적 Main 메서드를 프로그램의 진입점으로 정의할 수도 있습니다.
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
진입점 스타일은 모두 파일 기반 및 프로젝트 기반 앱에서 작동합니다. 두 스타일 모두 동일한 기능을 지원합니다.
C# 프로그램 빌드 및 실행
C#은 컴파일된 언어입니다. 프로젝트 기반 앱의 경우 이 dotnet build 명령을 사용하여 소스 파일을 이진 패키지로 컴파일합니다. 한 단계에서 빌드 및 실행하는 데 사용합니다 dotnet run . .NET SDK에 포함된 CLI는 dotnet C# 프로젝트를 만들고, 빌드하고, 관리하는 많은 도구를 제공합니다.
파일 기반 앱 dotnet run hello-world.cs 의 경우 단일 파일을 직접 컴파일하고 실행합니다. 프로젝트 파일은 필요하지 않습니다.
표현식과 명령문
시작 자습서를 진행한 경우 이미 식과 문을 작성했습니다. 입력한 모든 코드 줄은 하나 또는 다른 줄(또는 둘 다)이었습니다. 이제 해당 용어를 정의해 보겠습니다.
식 및 문은 C# 프로그램의 기본 구성 요소입니다. 식은 값을 생성합니다. 문은 작업을 수행하고 일반적으로 세미콜론으로 끝납니다.
다음은 표현들입니다.
-
42(리터럴 값) -
x + y(산술 연산) -
Math.Max(a, b)(값을 생성하는 메서드 호출) -
condition ? trueValue : falseValue(조건식) -
new Person("John")(개체 만들기)
문은 작업을 수행합니다. 명령문은 프로그램 흐름을 제어하거나, 변수를 선언하거나, 연산을 수행합니다. 다음은 진술입니다.
-
int x;(선언문) -
int x = 42;(초기화가 포함된 선언문) -
Console.WriteLine("Hello");(메서드 호출 문) -
if (condition) { /* code */ }(조건문) -
return result;(return 문)
문은 종종 식을 포함하며 식은 다른 식 내에 중첩할 수 있습니다. 예를 들어 다음 선언문은 더하기 식의 결과에 할당합니다 f . 이 추가 식은 두 메서드 호출 식의 결과를 추가합니다.
var maxResult = Math.Max(a, b) + Math.Max(c, d);
문장에 대한 자세한 내용은 문장을 참조하세요. 식 본문 멤버에 대해 자세히 알아보려면 식 본문 멤버를 참조하세요.
관련 콘텐츠
.NET