Paken.NET

筑波大学附属駒場中・高等学校 パーソナルコンピュータ研究部
<< 2008年02月 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 >>
<< ~いろいろなクラスを見てみよう~ 第01回 "System.Enum" | トップ | ~いろいろなクラスを見てみよう~ 第03回 "System.Reflection.Assembly" >>

~いろいろなクラスを見てみよう~ 第02回 "System.Convert"

2007年10月10日 水曜日 | Paken > isa-inguz |

では今回は、 System.Convert を扱ってみましょう。

このクラスも案外知られていなかったり。いえ実は世間的にはもうSystem.String並みに知られているのかも知れませんが、”猫でもわかる(web版)”に掲載されていない段階で私は最近まで知りませんでした。

ですからきっと知名度は低いものと考えます。

さて、それでこのクラス、名前を見ればすぐに分かると思われますが、主にデータ変換系のスタティックメソッドを提供します。

特にそのスタティックメソッドの多くは __ To__(_ value) (__及び_はstring等、System直下のプリミティブクラスや構造体など) という形式のもので占められていまして、これらは_型の値valueを__型の値に変換して返すというものなのですが、正直言ってあまり使う機会はありません。

Cのコードを再利用するときにToBoolean(Int32)とかやることもあるかもしれませんが、まあまず利用機会はないと見て良いのでは。

変換系のメソッドは自分で組んだ方が便利だったりします。

さて、それで今回紹介しますのは、System.Convertの中でおそらく唯一の__ To__(_ value)ではない変換メソッド一式です。

それは string ToBase64String (byte[] inArray) です。

もうこれも昨日に引き続き説明の必要がありませんね。

入力されたbyte配列を、Base64形式で文字列に変換して返す。それだけのメソッドです。

Base64なんて今時使うのか?という気もするかもしれませんが、意外と使う機械、多いです。少なくとも覚えておいて損はないはず。

それに案外、昨日のParseと同様にこのメソッドの存在を知らずに困っている人がよくいるようです。はい。自分もそうでした。

そういえばもう一つ忘れてはならないメソッドがあって、

それは byte[] FromBase64String (string s) ですね。

これももう自明の通り、先ほどの逆の変換を行うだけのメソッド。

ではとりあえずサンプルコードを貼ります。

 

using System;
using System.Text;

class Base64Test
{

   public static void Main()
   {
       string Message = "Hello, world!";
       Console.WriteLine(Message);
       byte[] ByteArray = Encoding.UTF8.GetBytes(Message.ToCharArray());
       string Base64Array = Convert.ToBase64String(ByteArray);
       Console.WriteLine(Base64Array);
       ByteArray = Convert.FromBase64String(Base64Array);
       Message = Encoding.UTF8.GetString(ByteArray);
       Console.WriteLine(Message);
   }
}

 

実行結果--
Hello, world!

SGVsbG8sIHdvcmxkIQ==

Hello, world!

 

はい。こんなところですね。

ちなみに途中で出ているSystem.Text.Encoding.UTF8は、Unicode文字列とByte配列を相互変換するために使っているだけです。

 

なんだか簡単なメソッドばかりで面白くありませんね。

次回ちょっと難しいクラスを扱ってみようかと思います。

それにスタティックメソッドの解説ばかりというのもあれですしね。

とりあえず今回はここまで。また次回をお楽しみに。

paken | コメント (0) | トラックバック (0)

コメント









 

トラックバック

トラックバックURL :