R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

foreach の型変換

今、コーディングしていて、

foreach って、型変換してるんだなー

と、改めて思ったので、記念にコードを作ってみました。



foreach(byte x in new [] {1}) Console.WriteLine(x.GetType());



実行すると、「System.Byte」と表示されることでしょう。


int t = 0;
foreach(int x in "ABCDE") t += x;
Console.WriteLine(t);
Console.ReadLine();


これは、335と表示されます・・・

投稿日時 : 2010年1月11日 15:00

Feedback

# re: foreach の型変換 2010/01/11 16:10 えムナウ

>335と表示されます・・・
あえて「なんで?」といってみる。

# re: foreach の型変換 2010/01/12 9:46 biac

Char 構造体は Char.IConvertible.ToInt32() メソッドとか持ってますからね~。 335 になるのは、予定通り♪

これが VB だと、 さらに縮小変換も行われちゃうので、 わけわかめ。 次のコードが通っちゃうw
For Each num As Integer In New String() {"01", "2E0", "+3.0"}
Call Console.Write("{0}, ", num)
Next

http://msdn.microsoft.com/ja-jp/library/k1e94s7e.aspx#ctl00_WikiContent_ctl00_Container

# re: foreach の型変換 2010/01/12 13:56 R・田中一郎

えムナウ さん

あえて、わかりません、と言ってみますw

-----------------------------
biac さん

なにこれ珍百景ですね

タイトル  
名前  
Url
コメント