2010/05/23

知らなかった。C#の文字列加算など

Dim str as string = "[" + 4 + "]"


は,strict onの時は、コンパイルエラー。 offのときは、実行時に型エラーで落ちます。

Dim str as string = "[" + 4.ToString() + "]" と書くとOKですし、字面も納得です。

C#だと

string str = "[" + 4 + "]"; と書いても、エラーにならず、実行できます。



恥ずかしながら、いままで知りませんでした。VB同様に "[" + 4.ToString() + "]";と書いていました。

コンパイル解釈が良くできているとみるか、基準が甘いと見るかは意見が分かれそうですね。

でも、脳内コンパイラーがNG信号を発して、不安定感があります。

ほかにも、勝手に制約があると思い込んでいる事項がありそうです。



汎用デリゲートは、 Func<>,Action()だけだと思っていたら、MethodInvoke,やPredicate があるを先日知りました。

再度入門書を読み直す必要があると思った次第。

0 件のコメント:

コメントを投稿