다음을 통해 공유


DecoderFallbackBuffer 클래스

정의

입력 바이트 시퀀스를 디코드할 수 없을 경우 fallback 처리기가 디코더로 대체 문자열을 반환할 수 있는 버퍼를 제공합니다.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
상속
DecoderFallbackBuffer
파생

설명

인코딩은 유니코드 문자와 인코딩된 바이트 시퀀스 간의 매핑을 정의합니다. 입력 바이트 시퀀스를 출력 문자로 변환하는 디코딩 작업은 특정 바이트 시퀀스에 대해 매핑이 정의되지 않은 경우 실패합니다.

.NET Framework 변환을 수행할 수 없는 경우 대체(fallback)라고 하는 오류 처리 메커니즘을 제공합니다. 모든 디코더 대체 처리기는 다음을 구현해야 합니다.

  • 클래스에서 DecoderFallback 파생된 클래스로 표현되는 디코더 대체(fallback)입니다.

  • 변환 작업에 문자열을 반환할 수 있는 클래스에서 DecoderFallbackBuffer 파생된 형식으로 표현되는 디코더 대체 버퍼입니다.

대체는 세 가지 전략을 사용하여 변환 오류를 처리할 수 있습니다.

  • 가장 적합한 매핑입니다. 디코더 대체 버퍼는 입력 바이트 시퀀스에 대한 근사값을 나타내는 문자열을 반환할 수 있습니다. .NET Framework 공용에 가장 적합한 DecoderFallbackBuffer 구현을 제공하지 않습니다.

  • 대체 기능 디코더 대체 버퍼는 바이트 시퀀스를 디코딩할 수 없음을 나타내는 물음표("?")와 같은 문자열을 반환할 수 있습니다. .NET Framework 및 DecoderReplacementFallbackBuffer 클래스는 DecoderReplacementFallback 공용 대체 대체 버퍼 구현을 제공합니다. 클래스의 DecoderReplacementFallback 생성자를 사용하면 대체 문자열을 정의할 수 있습니다.

  • 예외. 구현은 DecoderFallbackBuffer 바이트 시퀀스를 디코딩할 수 없음을 나타내는 예외를 throw하고 디코딩 작업을 종료합니다. 이 경우 대체 처리기는 디코더에 문자열을 DecoderFallbackBuffer 반환하지 않지만 구현을 제공해야 합니다. .NET Framework DecoderExceptionFallbackDecoderExceptionFallbackBuffer 클래스는 바이트 시퀀스를 디코딩할 수 없는 경우를 DecoderFallbackException throw하는 공용 예외 대체 구현을 제공합니다.

구현의 DecoderFallbackBuffer 버퍼는 디코더 대체에 대한 응답으로 디코더에 반환될 전체 문자열을 나타냅니다. 일반적으로 구현에는 디코더로 반환할 다음 문자의 인덱스 및 반환할 나머지 문자 수와 같은 상태 정보도 포함됩니다. DecoderFallbackBuffer 추상 클래스이므로 최소한 다음 멤버를 구현하려면 파생 클래스가 필요합니다.

  • Fallback 바이트 시퀀스를 디코딩할 수 없는 경우 디코더에서 호출되는 메서드입니다. 디코더는 디코딩할 수 없는 바이트가 포함된 배열과 입력 바이트 배열의 첫 번째 바이트 인덱스라는 두 가지 정보를 대체 버퍼 구현에 전달합니다. 디코더 대체 예외 처리기에서 예외는 이 메서드에서 throw됩니다. 그렇지 않으면 대체(fallback)를 제공하는 경우 또는 false 그렇지 않은 경우 메서드가 반환 true 됩니다.

  • 메서드가 GetNextChar 반환true되는 경우 Fallback 디코더에서 반복적으로 호출되는 메서드입니다. 연속 호출에서 처리기는 버퍼의 각 문자를 반환해야 합니다. 모든 문자를 반환한 경우 U+0000을 반환해야 합니다. 예외 대체 처리기는 항상 U+0000을 반환합니다.

  • MovePrevious 버퍼의 이전 위치로 포인터를 이동하려고 하고 이동이 성공했는지 여부를 나타내는 메서드입니다. 예외 처리기는 항상 .false

  • Remaining 디코더에 반환할 나머지 문자 수를 나타내는 속성입니다. 예외 대체 처리기는 항상 0을 반환합니다.

생성자

DecoderFallbackBuffer()

DecoderFallbackBuffer 클래스의 새 인스턴스를 초기화합니다.

속성

Remaining

파생 클래스에서 재정의될 때 처리되기 위해 남아 있는 현재 DecoderFallbackBuffer 개체의 문자 수를 가져옵니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Fallback(Byte[], Int32)

파생 클래스에서 재정의될 때 지정된 입력 바이트 시퀀스를 처리하도록 대체 버퍼를 준비합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetNextChar()

파생 클래스에서 재정의될 때 대체 버퍼에서 다음 문자를 검색합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MovePrevious()

파생 클래스에서 재정의될 때 GetNextChar() 메서드에 대한 다음 호출에서 데이터 버퍼의 현재 문자 위치 이전의 문자 위치에 액세스하도록 합니다.

Reset()

이 대체 버퍼와 관련된 모든 데이터 및 상태 정보를 초기화합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보