共用方式為


DecoderFallbackBuffer 類別

定義

提供緩衝區,讓備援處理程序在無法解碼輸入位元組序列時,將替代字串回傳給解碼器。

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
繼承
DecoderFallbackBuffer
衍生

備註

編碼定義了 Unicode 字元與編碼的位元組序列之間的映射。 若未定義特定位元組序列的映射,則解碼操作將輸入位元組序列轉換為輸出字元時會失敗。

.NET Framework 提供一種失敗處理機制,稱為備援機制,以防無法進行轉換。 所有解碼器備援處理器必須實作以下事項:

  • 解碼器備援,由該 DecoderFallback 類別衍生出的類別表示。

  • 解碼器備援緩衝區,由類別衍生 DecoderFallbackBuffer 出的型態表示,該類型可將字串回傳至轉換操作。

備用方案可採用三種策略來處理轉換失敗:

實作中的 DecoderFallbackBuffer 緩衝區代表整個字串,需回應解碼器回退時回傳給解碼器。 一般來說,實作也會包含狀態資訊,例如下一個要返回解碼器的字元索引,以及剩餘要回傳的字元數量。 由於 DecoderFallbackBuffer 是抽象類別,因此至少需要衍生類別實作以下成員:

  • Fallback解碼器在無法解碼位元組序列時呼叫此方法。 解碼器會將兩段資訊傳送給備援緩衝區實作:一個包含無法解碼位元組的陣列,以及輸入位元組陣列中第一個位元組的索引。 在解碼器備援例外處理器中,例外會以此方法拋出。 否則,該方法若提供備援false,或未提供,則會回傳true

  • GetNextChar解碼器會反覆呼叫該方法,若Fallbacktrue返回 。 在連續呼叫中,處理器應回傳其緩衝區中的每個字元。 當它回傳完所有字元後,應該會回傳 U+0000。 例外備援處理程序總是回傳 U+0000。

  • MovePrevious 方法嘗試將指標移動到緩衝區的前一個位置,並判斷移動是否成功。 例外處理程序總是回傳 false

  • 屬性 Remaining ,表示要返回解碼器的剩餘字元數。 例外備援處理器總是回傳零。

建構函式

名稱 Description
DecoderFallbackBuffer()

初始化 DecoderFallbackBuffer 類別的新執行個體。

屬性

名稱 Description
Remaining

當在衍生類別中覆寫時,會取得目前 DecoderFallbackBuffer 物件中剩餘未處理的字元數。

方法

名稱 Description
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Fallback(Byte[], Int32)

當在派生類別中覆寫時,會準備備用緩衝區來處理指定的輸入位元組序列。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetNextChar()

當在衍生類別中覆寫時,會取得備援緩衝區中的下一個字元。

GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MovePrevious()

當在衍生類別中覆寫時,會使該方法的下一次呼叫 GetNextChar() 會存取目前字元位置之前的資料緩衝區字元位置。

Reset()

初始化所有與此備援緩衝區相關的資料與狀態資訊。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於

另請參閱