.NET 클래스 라이브러리 개요

.NET API에는 개발 과정을 지원하고 최적화하며 시스템 기능에 액세스할 수 있는 클래스, 인터페이스, 대리자, 값 형식이 포함되어 있습니다. 언어 간의 원활한 상호 운용성을 위해 대부분의 .NET 형식은 CLS(공용 언어 사양) 규격을 따르므로 CLS 규격 컴파일러를 사용하는 모든 프로그래밍 언어에서 사용될 수 있습니다.

.NET 형식은 .NET 애플리케이션, 구성 요소 및 컨트롤 빌드의 기초가 됩니다. .NET에는 다음과 같은 기능을 수행하는 형식이 포함되어 있습니다.

  • 기본 데이터 형식 및 예외를 나타냅니다.
  • 데이터 구조를 캡슐화합니다.
  • I/O를 수행합니다.
  • 로드된 형식에 대한 정보에 액세스합니다.
  • .NET 보안 검사를 호출합니다.
  • 데이터 액세스, 리치 클라이언트 쪽 GUI, 서버에서 제어 가능한 클라이언트 쪽 GUI를 제공합니다.

.NET에서는 강력한 인터페이스 집합뿐만 아니라 추상 및 구체(비추상) 클래스도 제공합니다. 구체적 클래스를 있는 그대로 사용할 수도 있고 대부분의 경우 구체적 클래스에서 고유한 클래스를 파생시켜 사용할 수도 있습니다. 인터페이스의 기능을 사용하려면 해당 인터페이스를 구현하는 클래스를 만들거나 해당 인터페이스를 구현하는 .NET 클래스 중 하나에서 클래스를 파생시킵니다.

명명 규칙

.NET 형식에서는 계층 구조를 의미하는 스키마의 이름을 지정하는데 점 구문을 사용합니다. 이 방법을 사용하면 관련 형식을 네임스페이스로 그룹화하여 보다 쉽게 검색하고 참조할 수 있습니다. 전체 이름의 첫 번째 부분(가장 오른쪽 점의 오른쪽 부분)은 해당 네임스페이스의 이름입니다. 마지막 부분은 형식 이름입니다. 예를 들어 System.Collections.Generic.List<T>System.Collections.Generic 네임스페이스에 속하는 List<T> 형식을 나타냅니다. System.Collections.Generic의 형식은 제네릭 컬렉션에 대한 작업에 사용할 수 있습니다.

이 명명 체계를 사용하면 .NET을 확장하는 라이브러리 개발자가 손쉽게 계층 구조의 그룹 형식을 만들고 일관되고 이해하기 쉬운 이름을 그룹에 지정할 수 있습니다. 또한 형식을 전체 이름, 즉 네임스페이스와 형식 이름별로 명확하게 식별할 수 있으므로 형식 이름 간의 충돌을 방지할 수 있습니다. 라이브러리 개발자는 다음과 같은 규칙을 사용하여 네임스페이스의 이름을 만듭니다.

CompanyName.TechnologyName

예를 들어, 네임스페이스 Microsoft.Word는 이 지침을 따릅니다.

명명 패턴을 사용하여 관련 형식을 네임스페이스로 그룹화하면 효과적으로 클래스 라이브러리를 빌드하고 문서화할 수 있습니다. 하지만 이 명명 스키마는 표시 여부, 멤버 액세스, 상속성, 보안 또는 바인딩에는 영향을 주지 않습니다. 하나의 네임스페이스가 여러 어셈블리에 분할될 수 있으며 하나의 어셈블리에 여러 네임스페이스의 형식이 포함될 수 있습니다. 어셈블리는 공용 언어 런타임에서 버전 관리, 배포, 보안, 로딩 및 표시 여부에 대한 형식적 구조를 제공합니다.

네임스페이스 및 형식 이름에 대한 자세한 내용은 공용 형식 시스템을 참조하세요.

System 네임스페이스

System 네임스페이스는 .NET의 기본 형식에 대한 루트 네임스페이스입니다. 이 네임스페이스에는 모든 애플리케이션에서 사용하는 Object(상속 계층 구조의 루트), Byte, Char, Array, Int32, String 등의 기본 데이터 형식을 나타내는 클래스가 포함됩니다. 이 형식의 대부분은 프로그래밍 언어에서 사용하는 기본 데이터 형식에 해당합니다. .NET 형식을 사용하여 코드를 작성할 때 .NET 기본 데이터 형식이 필요하면 사용 중인 프로그래밍 언어의 해당 키워드를 사용할 수 있습니다.

다음 표에서는 .NET에서 제공하는 기본 형식 목록을 보여 주며 각 형식에 대해 간단히 설명한 다음 Visual Basic, C#, C++ 및 F#의 해당 형식을 나타냅니다.

범주 클래스 이름 설명 Visual Basic 데이터 형식 C# 데이터 형식 C++/CLI 데이터 형식 F# 데이터 형식
정수 Byte 8비트 부호 없는 정수임 Byte byte unsigned char byte
SByte 8비트 부호 있는 정수입니다.

CLS 규격을 따르지 않음
SByte sbyte char 또는 signed char sbyte
Int16 16비트 부호 있는 정수입니다. Short short short int16
Int32 32비트 부호 있는 정수입니다. Integer int int 또는 long int
Int64 64비트 부호 있는 정수입니다. Long long __int64 int64
UInt16 16비트 부호 없는 정수입니다.

CLS 규격을 따르지 않음
UShort ushort unsigned short uint16
UInt32 32비트 부호 없는 정수입니다.

CLS 규격을 따르지 않음
UInteger uint unsigned int 또는 unsigned long uint32
UInt64 64비트 부호 없는 정수입니다.

CLS 규격을 따르지 않음
ULong ulong unsigned __int64 uint64
부동 소수점 Half 반정밀도(16비트) 부동 소수점 숫자입니다.
Single 단정밀도(32비트) 부동 소수점 숫자 Single float float float32 또는 single
Double 배정밀도(64비트) 부동 소수점 숫자 Double double double float 또는 double
논리 Boolean 부울 값(true 또는 false) Boolean bool bool bool
기타 Char 유니코드(16비트) 문자 Char char wchar_t char
Decimal 10진수(128비트) 값 Decimal decimal Decimal decimal
IntPtr 내부 플랫폼에 따라 크기가 결정되는 부호 있는 정수(32비트 플랫폼에서는 32비트 값이고 64비트 플랫폼에서는 64비트 값임) nint unativeint
UIntPtr 내부 플랫폼에 따라 크기가 결정되는 부호 없는 정수(32비트 플랫폼에서는 32비트 값이고 64비트 플랫폼에서는 64비트 값임)

CLS 규격을 따르지 않음
nuint unativeint
Object 개체 계층 구조의 루트임 Object object Object^ obj
String 유니코드 문자로 구성된 변경할 수 없는 고정 길이의 문자열 String string String^ string

기본 데이터 형식 외에도 System 네임 스페이스에는 100 개 이상의 클래스를 애플리케이션 도메인 및 가비지 수집기와 같은 핵심 런타임 개념을 다루는 클래스에 대 한 예외를 처리 하는 클래스를 포함 합니다. 또한 System 네임스페이스에는 2차 네임스페이스도 많이 들어 있습니다.

네임스페이스에 대한 자세한 내용은 .NET API 브라우저를 사용하여 .NET 클래스 라이브러리를 참조하세요. API 참조 설명서는 각 네임스페이스, 해당 유형 및 해당 멤버의 각각에 대한 설명서를 제공합니다.

데이터 구조체

.NET에는 다양한 .NET 앱의 원동력인 데이터 구조 집합이 포함되어 있습니다. 대부분 컬렉션이지만 다른 형식도 있습니다.

  • Array - 인덱스에서 액세스할 수 있는 강력한 형식의 개체 배열을 나타냅니다. 구성별로 고정 크기가 있습니다.
  • List<T> - 인덱스로 액세스할 수 있는 강력한 형식의 개체 목록을 나타냅니다. 필요에 따라 크기가 자동으로 조정됩니다.
  • Dictionary<TKey,TValue> - 키로 인덱싱된 값의 컬렉션을 나타냅니다. 키를 통해 값에 액세스할 수 있습니다. 필요에 따라 크기가 자동으로 조정됩니다.
  • Uri - URI(Uniform Resource Identifier)의 개체 표현을 제공하며 URI 부분에 쉽게 액세스할 수 있도록 합니다.
  • DateTime - 일반적으로 날짜와 시간으로 표시된 시간을 나타냅니다.

유틸리티 API

.NET에는 여러 중요한 작업에 대한 기능을 제공하는 유틸리티 API 집합이 포함되어 있습니다.

  • HttpClient - URI로 식별되는 리소스에서 HTTP 요청을 보내고 HTTP 응답을 받기 위한 API입니다.
  • XDocument - XML 문서를 로드하고 LINQ를 사용하여 쿼리하기 위한 API입니다.
  • StreamReader - 파일을 읽기 위한 API.
  • StreamWriter - 파일을 쓰기 위한 API.

앱 모델 API

다음과 같은 다양한 앱 모델을 .NET과 함께 사용할 수 있습니다.

  • ASP.NET - 웹 사이트와 서비스를 빌드하는 웹 프레임워크입니다. Windows, Linux 및 macOS에서 지원됩니다(ASP.NET 버전에 따라 다름).
  • .NET MAUI - C#을 사용하여 Windows, macOS, iOS, Android에서 실행되는 네이티브 앱을 빌드하기 위한 앱 플랫폼입니다.
  • Windows Desktop - WPF(Windows Presentation Foundation) 및 Windows Forms가 포함되어 있습니다.

참고 항목