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 方法傳回 true ,這個方法會由解碼器 Fallback 重複呼叫。 在後續呼叫中,處理常式應該會傳回其緩衝區中的每個字元。 當它傳回所有字元時,它應該會傳回 U+0000。 例外狀況後援處理常式一律會傳回 U+0000。

  • MovePrevious方法,它會嘗試將指標移至緩衝區中的上一個位置,並指出移動是否成功。 例外狀況處理常式一律會傳 false 回 。

  • Remaining屬性,表示要傳回給解碼器的剩餘字元數。 例外狀況後援處理常式一律會傳回零。

建構函式

DecoderFallbackBuffer()

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

屬性

Remaining

在衍生類別中覆寫時,於目前的 DecoderFallbackBuffer 物件中取得仍要處理的字元數。

方法

Equals(Object)

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

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

在衍生類別中覆寫時,預備後援緩衝區來處理指定的輸入位元組序列。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetNextChar()

在衍生類別中覆寫時,擷取後援緩衝區中的下一個字元。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MovePrevious()

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

Reset()

初始化與後援緩衝區有關的所有資料和狀態資訊。

ToString()

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

(繼承來源 Object)

適用於

另請參閱