C# 프로그램은 하나 이상의 파일로 구성됩니다. 각 파일에는 0개 이상의 네임스페이스가 포함됩니다. 네임스페이스에는 클래스, 구조체, 인터페이스, 열거형, 대리자 또는 기타 네임스페이스와 같은 형식이 포함됩니다. 다음 예제는 이러한 모든 요소를 포함하는 C# 프로그램의 기본 구조입니다.
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
앞의 예제에서는 프로그램의 진입점에 최상위 문 를 사용합니다. 하나의 파일만 최상위 문을 가질 수 있습니다. 프로그램의 진입점은 해당 파일에 있는 프로그램 텍스트의 첫 번째 텍스트 줄입니다. 이 경우 Console.WriteLine("Hello world!");
.
다음 예제와 같이 Main
프로그램의 진입점으로 명명된 정적 메서드를 만들 수도 있습니다.
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
이 경우 프로그램은 메서드의 Main
여는 중괄호에서 시작됩니다. Console.WriteLine("Hello world!");
C# 프로그램 빌드 및 실행
C#은 컴파일된 언어입니다. 대부분의 C# 프로그램에서는 이 명령을 사용하여 dotnet build
소스 파일 그룹을 이진 패키지로 컴파일합니다. 그런 다음, 이 명령을 사용하여 dotnet run
프로그램을 실행합니다. 필요한 경우 프로그램을 실행하기 전에 컴파일하므로 이 프로세스를 dotnet run
간소화할 수 있습니다. 이러한 도구는 다양한 언어의 구성 옵션 및 명령줄 스위치를 지원합니다.
dotnet
.NET SDK에 포함된 CLI(명령줄 인터페이스)는 C# 파일을 생성하고 수정하는 여러 도구를 제공합니다.
C# 14 및 .NET 10부터 파일 기반 프로그램을 만들어 C# 프로그램 빌드 및 실행을 간소화할 수 있습니다. 이 dotnet run
명령을 사용하여 단일 *.cs
파일에 포함된 프로그램을 실행합니다. 예를 들어 다음 코드 조각이 이름이 지정된 hello-world.cs
파일에 저장된 경우 다음을 입력하여 dotnet run hello-world.cs
실행할 수 있습니다.
#!/usr/local/share/dotnet/dotnet run
Console.WriteLine("Hello, World!");
프로그램의 첫 번째 줄에는 Unix 셸에 #!
대한 시퀀스가 포함됩니다. CLI의 dotnet
위치는 다양한 배포에 따라 달라질 수 있습니다. Unix 시스템에서 C# 파일에 대한 실행 (+x
) 권한을 설정하는 경우 명령줄에서 C# 파일을 실행할 수 있습니다.
./hello-world.cs
이러한 프로그램의 원본은 단일 파일이어야 하지만 그렇지 않으면 모든 C# 구문이 유효합니다. 작은 명령줄 유틸리티, 프로토타입 또는 기타 실험에 파일 기반 프로그램을 사용할 수 있습니다. 파일 기반 프로그램은 빌드 시스템을 구성하는 전처리기 지시문을 허용합니다 .
표현식과 명령문
C# 프로그램은 식 및 문을 사용하여 빌드 됩니다. 식은 값을 생성하고 문은 다음 작업을 수행합니다.
식은 단일 값으로 계산되는 값, 변수, 연산자 및 메서드 호출의 조합입니다. 표현식은 결과를 생성하며, 값이 기대되는 모든 곳에서 사용할 수 있습니다. 다음 예제는 표현입니다.
-
42
(리터럴 값) -
x + y
(산술 연산) -
Math.Max(a, b)
(메서드 호출) -
condition ? trueValue : falseValue
(조건식) -
new Person("John")
(개체 만들기)
문은 작업을 수행하는 전체 명령입니다. 문은 값을 반환하지 않습니다. 대신 프로그램 흐름을 제어하거나, 변수를 선언하거나, 작업을 수행합니다. 다음의 예제들은 문장입니다.
-
int x = 42;
(선언문) -
Console.WriteLine("Hello");
(표현문 - 메서드 호출 식을 감싸는 문장) -
if (condition) { /* code */ }
(조건문) -
return result;
(return 문)
주요 차이점: 표현식은 값으로 평가되는 반면, 문은 명령을 실행합니다. 메서드 호출과 같은 일부 구문은 둘 다일 수 있습니다. 예를 들어, Math.Max(a, b)
는 int result = Math.Max(a, b);
에서 사용될 때 '식'으로 사용되지만, 단독으로 Math.Max(a, b);
로 작성될 때 '식 문'이 됩니다.
문장에 대한 자세한 내용은 문장을 참조하세요. 식 본문 멤버 및 기타 식 기능에 대한 자세한 내용은 식 본문 멤버를 참조하세요.
관련 섹션
기본 사항 가이드의 형식 섹션에서 이러한 프로그램 요소에 대해 알아봅니다.
C# 언어 사양
자세한 내용은 C# 언어 사양 기본 개념을 참조하세요. 언어 사양은 C# 구문 및 사용의 최종 소스입니다.
.NET