Char 데이터 형식(Visual Basic)

0~65535 값 범위의 부호 없는 16비트(2바이트) 코드 포인트를 보유합니다. 각 코드 포인트 또는 문자 코드는 단일 유니코드 문자를 나타냅니다.

설명

단일 문자만 보유해야 하고 String의 오버헤드가 필요하지 않은 경우 Char 데이터 형식을 사용합니다. 어떤 경우에는 Char 요소의 배열인 Char()를 사용하여 여러 문자를 보유할 수 있습니다.

Char의 기본값은 코드 포인트가 0인 문자입니다.

유니코드 문자

유니코드의 처음 128개 코드 포인트(0~127)는 표준 미국 키보드의 문자 및 기호에 해당합니다. 이러한 처음 128개의 코드 포인트는 ASCII 문자 집합이 정의하는 것과 동일합니다. 두 번째 128개의 코드 포인트(128~255)는 라틴 기반 알파벳 문자, 강조, 통화 기호 및 분수와 같은 특수 문자를 나타냅니다. 유니코드는 전 세계 텍스트 문자, 발음 구별 부호, 수학 및 기술 기호를 비롯한 다양한 기호에 나머지 코드 포인트(256-65535)를 사용합니다.

Char 변수에 대해 IsDigitIsPunctuation과 같은 메서드를 사용하여 유니코드 분류를 결정할 수 있습니다.

형식 변환

Visual Basic은 Char와 숫자 형식 간에 직접 변환하지 않습니다. Asc 또는 AscW 함수를 사용하여 Char 값을 해당 코드 포인트를 나타내는 Integer로 변환할 수 있습니다. Chr 또는 ChrW 함수를 사용하여 Integer 값을 해당 코드 포인트가 있는 Char로 변환할 수 있습니다.

형식 검사 스위치(Option Strict 문)가 켜져 있으면 단일 문자 문자열 리터럴에 리터럴 형식 문자를 추가하여 Char 데이터 형식으로 식별해야 합니다. 다음 예제에서는 이것을 보여 줍니다. charVar 변수에 대한 첫 번째 할당은 Option Strict가 켜져 있기 때문에 컴파일러 오류 BC30512를 생성합니다. 두 번째는 c 리터럴 형식 문자가 리터럴을 Char 값으로 식별하기 때문에 성공적으로 컴파일됩니다.

Option Strict On

Module CharType
    Public Sub Main()
        Dim charVar As Char

        ' This statement generates compiler error BC30512 because Option Strict is On.  
        charVar = "Z"  

        ' The following statement succeeds because it specifies a Char literal.  
        charVar = "Z"c
    End Sub
End Module

프로그래밍 팁

  • 음수. Char는 부호 없는 형식이므로 음수 값을 나타낼 수 없습니다. 어떤 경우에도 숫자 값을 보유하기 위해 Char를 사용해서는 안 됩니다.

  • Interop 고려 사항. .NET Framework용으로 작성되지 않은 구성 요소(예: 자동화 또는 COM 개체)와 인터페이스하는 경우 문자 형식은 다른 환경에서 다른 데이터 너비(8비트)를 갖는다는 점에 유의해야 합니다. 이러한 구성 요소에 8비트 인수를 전달하는 경우 새 Visual Basic 코드에서 Char 대신 Byte로 선언합니다.

  • Widening. Char 데이터 형식은 String으로 확대 변환됩니다. 이는 CharString으로 변환할 수 있으며 System.OverflowException이 발생하지 않음을 의미합니다.

  • 형식 문자. 단일 문자 문자열 리터럴에 리터럴 형식 문자 C를 추가하면 해당 문자가 Char 데이터 형식이 됩니다. Char에는 식별자 형식 문자가 없습니다.

  • Framework 형식. .NET Framework에서 해당하는 형식은 System.Char 구조체입니다.

참고 항목