C#은 객체 지향적이고 유형이 안전한 범용 프로그래밍 언어로 프로그래머의 생산성을 높이는 데 중점을 둡니다. 표현력, 단순성 및 성능에 대한 집중을 통해 이러한 생산성을 달성하려고 합니다. Windows, Mac 및 Linux와 같은 다양한 플랫폼에서 작동합니다.
유형 안전
C#은 정적으로 유형이 지정된 언어입니다. 즉, 프로그램을 컴파일할 때 유형이 확인됩니다. 이렇게 하면 프로그램이 실행되기 전에 많은 오류가 제거됩니다.
쓰레기 수집
자동 메모리 관리는 C#의 필수 기능입니다. 프로그램과 함께 실행되어 사용하지 않는 메모리를 회수하는 가비지 수집기가 있습니다. 이것은 프로그래머가 명시적으로 메모리를 할당 해제해야 하는 부담을 덜어줍니다.
.NET 에코시스템은 공용 언어 런타임 및 기본 클래스 라이브러리를 통해 C# 프로그램에 대한 지원을 제공합니다. 또한 데스크톱, 모바일 또는 웹 애플리케이션을 구축하기 위한 라이브러리를 제공하는 애플리케이션 계층도 포함되어 있습니다.
공용 언어 런타임
공통은 런타임이 C#, Visual Basic, F# 및 관리되는 C++와 같은 .NET 에코시스템의 다른 언어에서 공유됨을 나타냅니다. CLR은 가비지 수집 및 예외 처리를 제공합니다.
C# 컴파일러는 코드를 Java용 바이트 코드와 유사한 중간 언어(IL)로 변환합니다. 그런 다음 CLR은 이 IL을 실행 직전에 X-64 또는 X-86과 같은 시스템의 기본 코드로 변환합니다. 이를 JIT(Just-In-Time) 컴파일이라고 합니다.
이 중간 언어의 컨테이너를 어셈블리라고 합니다. 여기에는 IL 코드와 함께 유형에 대한 정보가 포함됩니다. 한 어셈블리에서 다른 어셈블리를 참조할 수 있습니다. C#은 리플렉션을 사용하여 메타데이터를 쿼리할 수도 있습니다.
기본 클래스 라이브러리
기본 클래스 라이브러리라고 하는 어셈블리 집합이 CLR에 포함되어 있습니다. I/O, 파일/텍스트 처리, 네트워킹 등 대부분의 프로그램에서 요구하는 필수 기능을 제공합니다.
여기에는 언어 자체에 필요한 유형도 포함됩니다. 컬렉션, linq 및 비동기 프로그래밍을 제공하며 가비지 컬렉션 및 리플렉션과 같은 CLR 기능에 액세스할 수 있습니다.