EncoderFallbackBuffer 類別

定義

提供緩衝區,允許後援處理常式在無法編碼輸入字元時,將替代字串傳回至編碼器。

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

備註

編碼會定義 Unicode 字元與編碼位元組序列之間的對應。 編碼作業,會將輸入字元轉換成輸出位元組序列,如果沒有針對特定字元定義對應,就會失敗。

如果無法執行轉換,.NET Framework會提供稱為後援的失敗處理機制。 所有編碼器後援處理常式都必須實作下列各項:

  • 編碼器後援,由衍生自 類別的 EncoderFallback 類別表示。

  • 編碼器後援緩衝區,此緩衝區是由衍生自 類別的類型 EncoderFallbackBuffer 所表示,可將字串傳回至轉換作業。

後援可以使用三種策略來處理轉換失敗:

實作中的 EncoderFallbackBuffer 緩衝區代表要傳回給編碼器的整個字串,以回應編碼器後援。 一般而言,實作也包含狀態資訊,例如要傳回編碼器之下一個字元的索引,以及要傳回的剩餘字元數。 因為 EncoderFallbackBuffer 是抽象類別,所以至少需要衍生類別才能實作下列成員:

  • 當編碼器無法編碼字元時,會呼叫多 Fallback 載方法。 編碼器會將兩個資訊片段傳遞至後援緩衝區實作:無法編碼的字元或代理字組,以及輸入中字元的索引。 在編碼器後援例外狀況處理常式中,會在此方法中擲回例外狀況。 否則,如果方法提供後援,則 false 傳回 ,否則會傳回 true

  • 方法 GetNextChar ,如果方法傳回 trueFallback 則編碼器會重複呼叫此方法。 在後續呼叫中,處理常式應該會傳回其緩衝區中的每個字元。 當它傳回所有字元時,它應該會傳回 U+0000。 例外狀況處理常式一律會傳回 U+0000。

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

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

建構函式

EncoderFallbackBuffer()

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

屬性

Remaining

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

方法

Equals(Object)

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

(繼承來源 Object)
Fallback(Char, Char, Int32)

在衍生類別中覆寫時,預備後援緩衝區來處理指定的 Surrogate 字組。

Fallback(Char, Int32)

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

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetNextChar()

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

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MovePrevious()

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

Reset()

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

ToString()

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

(繼承來源 Object)

適用於

另請參閱