DOBON.NET DOBON.NETプログラミング掲示板過去ログ

独自のEncodingの作り方

環境/言語:[.NET 2.0]
分類:[.NET]

こんにちは。

今回、独自のエンコーディングを実装してEncodingを引数にとる諸々の
クラスやメソッドで使えるようにしようと思っています。

が、具体的に何をどうすれば独自エンコーディングを実装できるのかが
全く検討つきません。Encodingクラスを継承するのかな…くらいは思いつきますが、
じゃぁ何をオーバーライドしてどういうデータを返して…というあたりの情報が
調べても全然出てこなくて悩んでいます。

一応このページを見てみましたが理解不能でした…
http://msdn.microsoft.com/ja-jp/library/aa561192(v=bts.10).aspx

何か情報がありましたらご教示いただければ幸いです。

(UTF8Encodingとか既存のやつを解析しようとも思ったのですが、
 それはライセンス的にまずそうなのでやってません)

以上よろしくお願いします
とりあえず、
C# なら
class HogeEncoding : Encoding {}
と入力して Encoding のところで Ctrl + .(ピリオド)を入力し、「Encoding を実装します」を選択してください。
VB なら
Class HogeEncoding
Inherits Encoding
End Class
の「Inherits Encoding」入力後に Enter を押します。
こうすればオーバーライド必須のメンバが自動的に挿入されるので、それらを実装すれば最低限の用は足せるでしょう。
それぞれの必須メンバの説明はまず MSDN を参照してみてください。
他にオーバーライド可能なメンバは、クラス内部で override とか Overrides とか入力すればインテリセンスを表示してくれます。必要に応じてオーバーライドしてください。

より丁寧に Encoding を実装する場合、Encoder および Decoder の派生クラスを定義しそちらに実装することになるでしょう。
返信ありがとうございます。

(実装必須メソッドの補完が出来ることを失念していました…)
C#で出てきたメソッドを重点的に調べてみましたが、
なんとなく理解できそうです

Encoder/Decoderはネットワークやファイル操作の時に…とのことなので、
広くEncodingを扱うクラス等に使われるためには必須のようですね。

GetMaxByteCount/GetMaxCharCountの意味がまだいまいち理解できていませんが
いろいろ調べてみます。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板