Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9701

【備忘録】動的型付けと型推論の違い

$
0
0

はじめに

C#を勉強してると、
「varって動的型付けじゃないの?」

「C#だとdynamicが動的型付けで、varは型推論なんだ」

「てか、動的型付けと型推論って違うのか!」
となり、違いを理解していなかったので調べてみました。
ざっくりとした説明なので、詳しく知りたい人は自分で調べてちょ。

動的型付け

実行時(Console.Write時)に型が決定されます。なので、下記のようになります。

// C#dynamicx=100// 動的型付けにより、変数xの型が数値型に決定するx="Hello World !"// 型が動的に決定されるので、エラーがにならず変数xの型が文字列型になるConsole.Write(x)// 「Hello World !」が表示される

型推論

コンパイル時(上からコードが読み込まれる時)に型が決定されます。

// C#varx=100// Int型を指定しなくても、代入される値からコンパイラが変数xの型を自動で決定する(型推論)x="Hello World !"// 型推論によりxがInt型に決定されているため、Int型以外を代入するとコンパイルエラーが発生Console.Write(x)// コンパイルエラーのため実行できない

補足

しかしながら、あくまで型推論である var と違って、dynamic で宣言した変数の型は「動的型」になります。

varsx=1;// sx の型は int 型dynamicdx=1;// dx の型は dynamic 型

Viewing all articles
Browse latest Browse all 9701

Trending Articles