DecoderFallbackBuffer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フォールバック ハンドラーが入力バイト シーケンスをデコードできない場合に代替文字列をデコーダーに返すことができるバッファーを提供します。
public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
- 継承
-
DecoderFallbackBuffer
- 派生
注釈
エンコードは、Unicode 文字とエンコードされたバイト シーケンスの間のマッピングを定義します。 特定のバイト シーケンスに対してマッピングが定義されていない場合、入力バイト シーケンスを出力文字に変換するデコード操作は失敗します。
.NET Framework には、変換を実行できない場合にフォールバックと呼ばれるエラー処理メカニズムが用意されています。 すべてのデコーダー フォールバック ハンドラーは、次を実装する必要があります。
デコーダー フォールバック。 DecoderFallback クラスから派生したクラスによって表されます。
デコーダー フォールバック バッファー。変換操作に文字列を返すことができる DecoderFallbackBuffer クラスから派生した型によって表されます。
フォールバックでは、次の 3 つの方法を使用して変換エラーを処理できます。
最適なマッピング。 デコーダー フォールバック バッファーは、入力バイト シーケンスに近い近似値を表す文字列を返すことができます。 .NET Framework には、パブリックに最適な DecoderFallbackBuffer 実装が用意されていません。
取り替え。 デコーダー フォールバック バッファーは、バイト シーケンスをデコードできなかったことを示す疑問符 ("?") などの文字列を返すことができます。 .NET Framework では、 DecoderReplacementFallback クラスと DecoderReplacementFallbackBuffer クラスによって、パブリック置換フォールバック バッファー実装が提供されます。 DecoderReplacementFallback クラスのコンストラクターを使用すると、置換文字列を定義できます。
例外。 DecoderFallbackBuffer実装は、バイト シーケンスをデコードできないことを示す例外をスローし、デコード操作を終了します。 この場合、フォールバック ハンドラーは、デコーダーに文字列を返しませんが、 DecoderFallbackBuffer 実装を提供する必要があります。 .NET Framework では、 DecoderExceptionFallback クラスと DecoderExceptionFallbackBuffer クラスは、バイト シーケンスをデコードできないときに DecoderFallbackException をスローするパブリック例外フォールバック実装を提供します。
DecoderFallbackBuffer実装のバッファーは、デコーダーフォールバックに応答してデコーダーに返される文字列全体を表します。 一般に、実装には、デコーダーに返される次の文字のインデックスや、返される残りの文字の数などの状態情報も含まれます。 DecoderFallbackBufferは抽象クラスであるため、少なくとも次のメンバーを実装するには派生クラスが必要です。
Fallback メソッド。バイト シーケンスをデコードできない場合にデコーダーによって呼び出されます。 デコーダーは、2 つの情報をフォールバック バッファー実装に渡します。デコードできなかったバイトを含む配列と、入力バイト配列の最初のバイトのインデックス。 デコーダー フォールバック例外ハンドラーでは、このメソッドで例外がスローされます。 それ以外の場合、メソッドはフォールバックを提供する場合は
trueを返し、提供しない場合はfalseします。Fallback メソッドが
trueを返す場合にデコーダーによって繰り返し呼び出されるGetNextChar メソッド。 連続する呼び出しでは、ハンドラーはバッファー内の各文字を返す必要があります。 すべての文字が返されたら、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) |