EncoderFallbackBuffer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フォールバック ハンドラーが入力文字をエンコードできない場合に代替文字列をエンコーダーに返すことができるバッファーを提供します。
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- 継承
-
EncoderFallbackBuffer
- 派生
注釈
エンコードは、Unicode 文字とエンコードされたバイト シーケンスの間のマッピングを定義します。 特定の文字にマッピングが定義されていない場合、入力文字を出力バイト シーケンスに変換するエンコード操作は失敗します。
.NET Framework には、変換を実行できない場合にフォールバックと呼ばれるエラー処理メカニズムが用意されています。 すべてのエンコーダー フォールバック ハンドラーは、次を実装する必要があります。
エンコーダー フォールバック。 EncoderFallback クラスから派生したクラスによって表されます。
エンコーダー フォールバック バッファー。変換操作に文字列を返すことができる EncoderFallbackBuffer クラスから派生した型によって表されます。
フォールバックでは、次の 3 つの方法を使用して変換エラーを処理できます。
最適なマッピング。 エンコーダー フォールバック バッファーは、入力文字に近い近似値を表す文字列を返すことができます。 .NET Framework には、パブリックに最適な EncoderFallbackBuffer 実装が用意されていません。
取り替え。 エンコーダー フォールバック バッファーは、文字をエンコードできなかったことを示す疑問符 ("?") などの文字列を返すことができます。 .NET Framework では、 EncoderReplacementFallback クラスと EncoderReplacementFallbackBuffer クラスによって、パブリック置換フォールバック バッファー実装が提供されます。 EncoderReplacementFallback クラスのコンストラクターを使用すると、置換文字列を定義できます。
例外。 EncoderFallbackBuffer実装は、文字をエンコードできないことを示す例外をスローし、エンコード操作を終了します。 この場合、フォールバック ハンドラーはエンコーダーに文字列を返しませんが、 EncoderFallbackBuffer 実装を提供する必要があります。 .NET Framework では、 EncoderExceptionFallback クラスと EncoderExceptionFallbackBuffer クラスは、文字をエンコードできないときに EncoderFallbackException をスローするパブリック例外フォールバック実装を提供します。
EncoderFallbackBuffer実装のバッファーは、エンコーダーフォールバックに応答してエンコーダーに返される文字列全体を表します。 一般に、実装には、エンコーダーに返される次の文字のインデックスや、返される残りの文字数などの状態情報も含まれます。 EncoderFallbackBufferは抽象クラスであるため、少なくとも次のメンバーを実装するには派生クラスが必要です。
オーバーロードされた Fallback メソッド。これは、エンコーダーが文字をエンコードできないときに呼び出されます。 エンコーダーは、2 つの情報をフォールバック バッファー実装に渡します。エンコードできなかった文字またはサロゲート ペアと、入力内の文字のインデックスです。 エンコーダー フォールバック例外ハンドラーでは、このメソッドで例外がスローされます。 それ以外の場合、メソッドはフォールバックを提供する場合は
trueを返し、提供しない場合はfalseします。GetNextChar メソッド。Fallback メソッドが
trueを返す場合、エンコーダーによって繰り返し呼び出されます。 連続する呼び出しでは、ハンドラーはバッファー内の各文字を返す必要があります。 すべての文字が返されたら、U+0000 を返す必要があります。 例外ハンドラーは常に U+0000 を返します。MovePreviousメソッド。バッファー内の前の位置へのポインターの移動を試み、移動が成功したかどうかを示します。 例外ハンドラーは常に
falseを返します。Remaining プロパティ。エンコーダーに返される残りの文字数を示します。 例外フォールバック ハンドラーは常に 0 を返します。
コンストラクター
| 名前 | 説明 |
|---|---|
| EncoderFallbackBuffer() |
EncoderFallbackBuffer クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Remaining |
派生クラスでオーバーライドされた場合、現在の EncoderFallbackBuffer オブジェクト内で処理される残りの文字数を取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| Fallback(Char, Char, Int32) |
派生クラスでオーバーライドされた場合は、指定されたサロゲート ペアを処理するフォールバック バッファーを準備します。 |
| Fallback(Char, Int32) |
派生クラスでオーバーライドされた場合は、指定した入力文字を処理するフォールバック バッファーを準備します。 |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetNextChar() |
派生クラスでオーバーライドされると、フォールバック バッファー内の次の文字を取得します。 |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| MovePrevious() |
派生クラスでオーバーライドされると、 GetNextChar() メソッドの次の呼び出しが、現在の文字位置より前のデータ バッファー文字位置にアクセスします。 |
| Reset() |
このフォールバック バッファーに関連するすべてのデータと状態情報を初期化します。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |