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

.NET 구현에는 개발 과정을 지원 및 최적화하고 시스템 기능에 대한 액세스를 제공하는 클래스, 인터페이스, 대리자 및 값 형식이 포함되어 있습니다..NET implementations include classes, interfaces, delegates, and value types that expedite and optimize the development process and provide access to system functionality. 언어 간의 원활한 상호 운용성을 위해 대부분의 .NET 형식은 CLS(공용 언어 사양) 규격을 따르므로 CLS 규격 컴파일러를 사용하는 모든 프로그래밍 언어에서 사용될 수 있습니다.To facilitate interoperability between languages, most .NET types are CLS-compliant and can therefore be used from any programming language whose compiler conforms to the common language specification (CLS).

.NET 형식은 .NET 애플리케이션, 구성 요소 및 컨트롤 빌드의 기초가 됩니다..NET types are the foundation on which .NET applications, components, and controls are built. .NET 구현에는 다음과 같은 기능을 수행하는 형식이 포함되어 있습니다..NET implementations include types that perform the following functions:

  • 기본 데이터 형식 및 예외를 나타냅니다.Represent base data types and exceptions.

  • 데이터 구조를 캡슐화합니다.Encapsulate data structures.

  • I/O를 수행합니다.Perform I/O.

  • 로드된 형식에 대한 정보에 액세스합니다.Access information about loaded types.

  • .NET Framework 보안 검사를 호출합니다.Invoke .NET Framework security checks.

  • 데이터 액세스, 리치 클라이언트 쪽 GUI, 서버에서 제어 가능한 클라이언트 쪽 GUI를 제공합니다.Provide data access, rich client-side GUI, and server-controlled, client-side GUI.

.NET에서는 강력한 인터페이스 집합뿐만 아니라 추상 및 구체(비추상) 클래스도 제공합니다..NET provides a rich set of interfaces, as well as abstract and concrete (non-abstract) classes. 구체 클래스를 있는 그대로 사용할 수도 있고 여러 가지 경우에 구체 클래스에서 직접 클래스를 파생시켜 사용할 수도 있습니다.You can use the concrete classes as is or, in many cases, derive your own classes from them. 인터페이스의 기능을 사용하려면 해당 인터페이스를 구현하는 클래스를 만들거나 해당 인터페이스를 구현하는 .NET 클래스 중 하나에서 클래스를 파생시킵니다.To use the functionality of an interface, you can either create a class that implements the interface or derive a class from one of the .NET classes that implements the interface.

명명 규칙Naming conventions

.NET 형식에서는 계층 구조를 의미하는 스키마의 이름을 지정하는데 점 구문을 사용합니다..NET types use a dot syntax naming scheme that connotes a hierarchy. 이 방법을 사용하면 관련 형식을 네임스페이스로 그룹화하여 보다 쉽게 검색하고 참조할 수 있습니다.This technique groups related types into namespaces so they can be searched and referenced more easily. 전체 이름에서 첫 번째 부분(가장 오른쪽 점의 오른쪽 부분)은 해당 네임스페이스의 이름이고,The first part of the full name — up to the rightmost dot — is the namespace name. 마지막 부분은 형식 이름입니다.The last part of the name is the type name. 예를 들어 System.Collections.Generic.List<T>System.Collections.Generic 네임스페이스에 속하는 List<T> 형식을 나타냅니다.For example, System.Collections.Generic.List<T> represents the List<T> type, which belongs to the System.Collections.Generic namespace. System.Collections.Generic의 형식은 제네릭 컬렉션에 대한 작업에 사용할 수 있습니다.The types in System.Collections.Generic can be used to work with generic collections.

이 이름 지정 체계를 사용하면 .NET Framework를 확장하는 라이브러리 개발자가 손쉽게 계층 구조의 그룹 형식을 만들고 일관되고 이해하기 쉬운 이름을 그룹에 지정할 수 있습니다.This naming scheme makes it easy for library developers extending the .NET Framework to create hierarchical groups of types and name them in a consistent, informative manner. 또한 형식을 전체 이름, 즉 네임스페이스와 형식 이름별로 명확하게 식별할 수 있으므로 형식 이름 간의 충돌을 방지할 수 있습니다.It also allows types to be unambiguously identified by their full name (that is, by their namespace and type name), which prevents type name collisions. 라이브러리 개발자는 다음과 같은 규칙을 사용하여 네임스페이스의 이름을 만듭니다.Library developers are expected to use the following convention when creating names for their namespaces:

CompanyName.TechnologyNameCompanyName.TechnologyName

예를 들어, 네임스페이스 Microsoft.Word는 이 지침을 따릅니다.For example, the namespace Microsoft.Word conforms to this guideline.

명명 패턴을 사용하여 관련 형식을 네임스페이스로 그룹화하면 효과적으로 클래스 라이브러리를 빌드하고 문서화할 수 있습니다.The use of naming patterns to group related types into namespaces is a very useful way to build and document class libraries. 하지만 이 명명 스키마는 표시 여부, 멤버 액세스, 상속성, 보안 또는 바인딩에는 영향을 주지 않습니다.However, this naming scheme has no effect on visibility, member access, inheritance, security, or binding. 하나의 네임스페이스가 여러 어셈블리에 분할될 수 있으며 하나의 어셈블리에 여러 네임스페이스의 형식이 포함될 수 있습니다.A namespace can be partitioned across multiple assemblies and a single assembly can contain types from multiple namespaces. 어셈블리는 공용 언어 런타임에서 버전 관리, 배포, 보안, 로딩 및 표시 여부에 대한 형식적 구조를 제공합니다.The assembly provides the formal structure for versioning, deployment, security, loading, and visibility in the common language runtime.

네임스페이스 및 형식 이름에 대한 자세한 내용은 공용 형식 시스템을 참조하세요.For more information on namespaces and type names, see Common Type System.

System 네임스페이스System namespace

System 네임스페이스는 .NET의 기본 형식에 대한 루트 네임스페이스입니다.The System namespace is the root namespace for fundamental types in .NET. 이 네임스페이스에는 모든 애플리케이션에서 사용하는 Object(상속 계층 구조의 루트), Byte, Char, Array, Int32, String 등의 기본 데이터 형식을 나타내는 클래스가 포함됩니다.This namespace includes classes that represent the base data types used by all applications: Object (the root of the inheritance hierarchy), Byte, Char, Array, Int32, String, and so on. 이 형식의 대부분은 프로그래밍 언어에서 사용하는 기본 데이터 형식에 해당합니다.Many of these types correspond to the primitive data types that your programming language uses. .NET Framework 형식을 사용하여 코드를 작성할 때 .NET Framework의 기본 데이터 형식이 필요하면 사용 중인 프로그래밍 언어의 해당 키워드를 사용할 수 있습니다.When you write code using .NET Framework types, you can use your language's corresponding keyword when a .NET Framework base data type is expected.

다음 표에서는 .NET에서 제공하는 기본 형식 목록을 보여 주며 각 형식에 대해 간단히 설명한 다음 Visual Basic, C#, C++ 및 F#의 해당 형식을 나타냅니다.The following table lists the base types that .NET supplies, briefly describes each type, and indicates the corresponding type in Visual Basic, C#, C++, and F#.

범주Category 클래스 이름Class name 설명Description Visual Basic 데이터 형식Visual Basic data type C# 데이터 형식C# data type C++/CLI 데이터 형식C++/CLI data type F# 데이터 형식F# data type
정수Integer Byte 8비트 부호 없는 정수임An 8-bit unsigned integer. ByteByte bytebyte unsigned charunsigned char bytebyte
SByte 8비트 부호 있는 정수입니다.An 8-bit signed integer.

CLS 규격을 따르지 않음Not CLS-compliant.
SByteSByte sbytesbyte charchar
또는-or-
signed charsigned char
sbytesbyte
Int16 16비트 부호 있는 정수입니다.A 16-bit signed integer. ShortShort shortshort shortshort int16int16
Int32 32비트 부호 있는 정수입니다.A 32-bit signed integer. IntegerInteger intint intint

또는-or-

longlong
intint
Int64 64비트 부호 있는 정수입니다.A 64-bit signed integer. LongLong longlong __int64__int64 int64int64
UInt16 16비트 부호 없는 정수입니다.A 16-bit unsigned integer.

CLS 규격을 따르지 않음Not CLS-compliant.
UShortUShort ushortushort unsigned shortunsigned short uint16uint16
UInt32 32비트 부호 없는 정수입니다.A 32-bit unsigned integer.

CLS 규격을 따르지 않음Not CLS-compliant.
UIntegerUInteger uintuint unsigned intunsigned int
또는-or-
unsigned longunsigned long
uint32uint32
UInt64 64비트 부호 없는 정수입니다.A 64-bit unsigned integer.

CLS 규격을 따르지 않음Not CLS-compliant.
ULongULong ulongulong unsigned __int64unsigned __int64 uint64uint64
부동 소수점Floating point Single 단정밀도(32비트) 부동 소수점 숫자A single-precision (32-bit) floating-point number. SingleSingle floatfloat floatfloat float32float32
또는or
singlesingle
Double 배정밀도(64비트) 부동 소수점 숫자A double-precision (64-bit) floating-point number. doubleDouble doubledouble doubledouble floatfloat
또는or
doubledouble
논리Logical Boolean 부울 값(true 또는 false)A Boolean value (true or false). BooleanBoolean boolbool boolbool boolbool
기타Other Char 유니코드(16비트) 문자A Unicode (16-bit) character. CharChar charchar wchar_twchar_t charchar
Decimal 10진수(128비트) 값A decimal (128-bit) value. DecimalDecimal decimaldecimal DecimalDecimal decimaldecimal
IntPtr 내부 플랫폼에 따라 크기가 결정되는 부호 있는 정수(32비트 플랫폼에서는 32비트 값이고 64비트 플랫폼에서는 64비트 값임)A signed integer whose size depends on the underlying platform (a 32-bit value on a 32-bit platform and a 64-bit value on a 64-bit platform). IntPtrIntPtr

기본 제공 형식이 아님No built-in type.
IntPtrIntPtr

기본 제공 형식이 아님No built-in type.
IntPtrIntPtr

기본 제공 형식이 아님No built-in type.
unativeintunativeint
UIntPtr 내부 플랫폼에 따라 크기가 결정되는 부호 없는 정수(32비트 플랫폼에서는 32비트 값이고 64비트 플랫폼에서는 64비트 값임)An unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).

CLS 규격을 따르지 않음Not CLS-compliant.
UIntPtrUIntPtr

기본 제공 형식이 아님No built-in type.
UIntPtrUIntPtr

기본 제공 형식이 아님No built-in type.
UIntPtrUIntPtr

기본 제공 형식이 아님No built-in type.
unativeintunativeint
Object 개체 계층 구조의 루트임The root of the object hierarchy. 개체Object objectobject Object^Object^ objobj
String 유니코드 문자로 구성된 변경할 수 없는 고정 길이의 문자열An immutable, fixed-length string of Unicode characters. StringString stringstring String^String^ stringstring

기본 데이터 형식 외에도 System 네임 스페이스에는 100 개 이상의 클래스를 애플리케이션 도메인 및 가비지 수집기와 같은 핵심 런타임 개념을 다루는 클래스에 대 한 예외를 처리 하는 클래스를 포함 합니다.In addition to the base data types, the System namespace contains over 100 classes, ranging from classes that handle exceptions to classes that deal with core runtime concepts, such as application domains and the garbage collector. 또한 System 네임스페이스에는 2차 네임스페이스도 많이 들어 있습니다.The System namespace also contains many second-level namespaces.

네임스페이스에 대한 자세한 내용은 .NET API 브라우저 를 사용하여 .NET 클래스 라이브러리를 참조하세요.For more information about namespaces, use the .NET API Browser to browse the .NET Class Library. API 참조 설명서는 각 네임스페이스, 해당 유형 및 해당 멤버의 각각에 대한 설명서를 제공합니다.The API reference documentation provides documentation on each namespace, its types, and each of their members.

참조See also