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 件のコメント:
コメントを投稿