다음을 통해 공유


DecoderFallbackBuffer 클래스

정의

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

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에서 DecoderReplacementFallback 클래스는 DecoderReplacementFallbackBuffer 공용 대체 대체 버퍼 구현을 제공합니다. 클래스의 DecoderReplacementFallback 생성자를 사용하면 대체 문자열을 정의할 수 있습니다.

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

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

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

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

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

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

생성자

Name Description
DecoderFallbackBuffer()

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

속성

Name Description
Remaining

파생 클래스에서 재정의되는 경우 처리할 현재 DecoderFallbackBuffer 개체의 문자 수를 가져옵니다.

메서드

Name Description
Equals(Object)

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

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

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

GetHashCode()

기본 해시 함수로 사용됩니다.

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

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

GetType()

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

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

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

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

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

Reset()

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

ToString()

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

(다음에서 상속됨 Object)

적용 대상

추가 정보