C#のvarとdynamicの違いは何ですか?

青灯夜游
リリース: 2019-04-17 11:46:41
オリジナル
5097 人が閲覧しました

C# では、キーワード var とdynamic の両方で動的に型指定された変数を宣言できます。これらは混同されやすい場合がありますが、本質的には異なります。 C#のキーワードvarとdynamicの違いについては以下の記事で紹介していますので、ご参考になれば幸いです。 [ビデオチュートリアルの推奨: C#tutorial]

C#のvarとdynamicの違いは何ですか?

##C# var キーワード # var は 3.5 の新しい変数定義型です: 暗黙的型; 暗黙的に型指定されたローカル変数の定義に使用でき、VAR は任意の型を置き換えることができます。

暗黙的に型指定された変数は、データ型を明示的に指定せずに宣言された変数です。暗黙的に型指定された変数では、コンパイラは、変数の初期化に使用された値からコンパイル時に変数の型を自動的に推定します。暗黙的に型指定された変数の概念は、C# 3.0 で導入されました。暗黙的に型指定された変数は、通常の変数宣言を置き換えるように設計されておらず、LINQ (統合言語クエリ) などの特殊なケースを処理するように設計されています。

#例:

using System; 
  
class A{ 
  
    // Main方法
    static public void Main() 
    { 
  
        // 使用var关键字创建和初始化隐式类型变量
        var a = 'f'; 
        var b = "php"; 
        var c = 30.67d; 
        var d = false; 
        var e = 54544; 
  
        // 输出类型 
        Console.WriteLine("'a'的类型是: {0} ", a.GetType()); 
  
        Console.WriteLine("'b'的类型是: {0} ", b.GetType()); 
  
        Console.WriteLine("'c'的类型是: {0} ", c.GetType()); 
  
        Console.WriteLine("'d'的类型是: {0} ", d.GetType()); 
  
        Console.WriteLine("'e'的类型是: {0} ", e.GetType()); 
    } 
}
ログイン後にコピー
出力:
'a'的类型是: System.Char 
'b'的类型是: System.String 
'c'的类型是: System.Double 
'd'的类型是: System.Boolean 
'e'的类型是: System.Int32
ログイン後にコピー

C# 動的キーワード

dynamic は 4.0 の新しいタイプの変数定義、動的タイプであり、コンパイル時の型チェックを回避するために使用されます。コンパイラは、動的に型指定された変数の型をコンパイル時にチェックせず、実行時に型を取得します。動的に型指定された変数は、dynamic キーワードを使用して作成されます。

例:

using System; 
  
class A { 
  
    // Main方法
    static public void Main() 
    { 
  
        // 使用dynamic关键字创建和初始化隐式类型变量
dynamic val1 = 'a'; 
        dynamic val2 = "hello"; 
        dynamic val3 = 3234; 
        dynamic val4 = 32.55; 
        dynamic val5 = true; 
  
        // 输出类型 
Console.WriteLine("val1的实际类型是:{0}", val1.GetType().ToString()); 
  
        Console.WriteLine("val2的实际类型是:{0}", val2.GetType().ToString()); 
  
        Console.WriteLine("val3的实际类型是:{0}", val3.GetType().ToString()); 
  
        Console.WriteLine("val4的实际类型是:{0}", val4.GetType().ToString()); 
Console.WriteLine("val5的实际类型是:{0}", val5.GetType().ToString()); 
    } 
}
ログイン後にコピー
出力:
val1的实际类型是:System.Char
val2的实际类型是:System.String
val3的实际类型是:System.Int32
val4的实际类型是:System.Double
val5的实际类型是:System.Boolean
ログイン後にコピー

C# のキーワード var と Dynamic の違いは何ですか?

1. 宣言された変数

キーワード var は C# 3.0 で導入されました。宣言された変数は静的型です。変数 型は決定されます。コンパイル時にコンパイラによって実行されます。

キーワード Dynamic は C# 4.0 で導入されました。宣言された変数は動的に型付けされ、変数の型は実行時にコンパイラによって決定されます。

2. 初期化

キーワード var で宣言された変数は、コンパイラが初期化された値に基づいて変数の型を決定するように、宣言時に初期化する必要があります。変数が初期化されていない場合は、エラーがスローされます。

dynamic キーワードを使用して宣言された変数は、コンパイラがコンパイル時に変数の型を認識しないため、宣言時にこの型の変数を初期化する必要はありません。変数が初期化されていない場合、エラーはスローされません。

3. IntelliSense のサポート

キーワード var は、Visual Studio の IntelliSense をサポートします。キーワード Dynamic は、Visual Studio では intelliSense

4 をサポートしていません。Application

キーワード var は、プロパティや関数からの値を返すために使用できません。関数内のローカル変数としてのみ使用できます。

キーワード Dynamic は、プロパティまたは関数からの戻り値に使用できます。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がC#のvarとdynamicの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート