Recent Trackbacks

« mixiキリ番 256番 | Main | ココログのスタイル変更 »

2004.09.26

C#での型変換

小野さんのC#ではじめるプログラミング入門第5回にて、Parse()メソッドによるstringからintへの型変換の方法が説明されていますが、.Net Frameworkでは型変換のこれ以外の方法として、Convertクラスの変換用メソッドも用意されています。また、キャストによる型変換も用意されています。(ただしstring型から数値型、またその逆は行えません。)

[Exp. 一部小野さんのコードを借用]

string s1 = "10";
int i1, i2;
i1 = System.Int32.Parse(s1);
System.Console.WriteLine(i1);

i2 = System.Convert.ToInt32(s1);
//これは許されない
//i2 = (int)s1;
System.Console.WriteLine(i2);

ここで疑問なのは、Parseメソッドを使う場合と,System.Convert.ToInt32メソッドを使う場合とではどちらがコストが低いのか、もしくは同じなのかという疑問です。
ただ、引数や、実際の動作を考えると元は同じかなともいますが。

« mixiキリ番 256番 | Main | ココログのスタイル変更 »

Comments

あ、記事中でははぶいちゃったかな?
SSCLIの実装みると、Convert.ToInt32の中でParseを呼んでます。
なので、Parseのほうがちょっとだけコストが低いかな、という感じです。
ただ、空文字を渡したときだったかの処理がConvert.ToInt32のほうに入っているので、一点だけ処理結果が異なってるという点に注意が必要です。

書き込みありがとうございます。
あーConvertはParseを読んでるのですか。逆か、共通のCLRのタスクを呼び出している物と思っていました。
基本的にはParseを使っていた方が良さそうですね。

実はドキュメントの読み方によっては、Parseを読んでるらしいことがわかったりして。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemconvertclasstoint32topic13.asp

「戻り値は、value に対して Int32.Parse メソッドを呼び出した結果得られる値です。」

でも、一点だけ動きが違うことには触れられてないんですよね。。。

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference C#での型変換:

« mixiキリ番 256番 | Main | ココログのスタイル変更 »

September 2019
Sun Mon Tue Wed Thu Fri Sat
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 30          
My Photo

Blogmap

無料ブログはココログ