C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのvarとdynamicの違い


私たちが知っているように、どの言語でのプログラミングも変数の宣言から始まり、その後、その定義とロジックの実装が行われます。したがって、コーディングを開始する前に、プログラミング言語で変数を宣言する方法を知っておくことが最も重要な要素の1つです。

ここで、C#言語のインスタンスを取得すると、言語の進歩に伴って変数の宣言が変更されます。以前のバージョンのC#と同様に、記述されたすべてのコードはコンパイル時に検証され、変数がvarキーワードを使用して宣言される静的型付き言語として作成されました。 C#4.0以降、構文の検証またはエラーのチェックが実行時にのみ発生する動的な導入があり、これにより、変数の宣言に動的なキーワードも導入されます。

以下は、varとdynamicの重要な違いです。

動的
Sr。いいえ。 キー var
1 定義 varは静的型付き変数として知られています。これは、これらの変数のデータ型がコンパイル時に推測されることを意味します。これは、これらの変数が初期化される値の型に基づいて行われます。 一方、動的は動的に型付けされた変数であり、その型はコンパイル時ではなく実行時に推測されることを明確に示しています。
2 バージョン Cシャープ言語のvarはC#3.0で導入されました 一方、ダイナミックはC#4.0の後半で導入されます
3 タイプ varの場合、変数のタイプはコンパイル時にコンパイラによって識別されます。 一方、動的な場合、変数のタイプは実行時にコンパイラ自体によって識別されます。
4 宣言 varの場合、変数は宣言時に初期化されるため、コンパイラは割り当てられた値に従って変数のタイプを認識します。 一方、動的の場合、宣言時に初期化する必要はありません。
5 例外 varを使用した変数defineは、宣言時に初期化されていない場合、例外をスローします。 変数definewithdynamicは、宣言時に初期化されていない場合でも例外をスローしません

  1. Javaでの静的バインディングと動的バインディングの違い

    バインディングは、メソッド呼び出しとメソッドの実際の実装の間にリンクを作成するメカニズムです。 Javaのポリモーフィズムの概念に従って、オブジェクトは多くの異なる形式を持つことができます。オブジェクトフォームは、コンパイル時と実行時に解決できます。メソッド呼び出しとメソッド実装の間のリンクがコンパイル時に解決される場合は静的バインディングと呼ばれ、実行時に解決される場合は動的バインディングと呼ばれます。動的バインディングはオブジェクトを使用してバインディングを解決しますが、静的バインディングはクラスとフィールドのタイプを使用します。 Sr。いいえ。 キー 静的バインディング

  2. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート