Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen Var und Dynamic in C#?

Was ist der Unterschied zwischen Var und Dynamic in C#?

青灯夜游
青灯夜游Original
2019-04-17 11:46:415095Durchsuche

In C# können sowohl die Schlüsselwörter „var“ als auch „dynamic“ dynamisch typisierte Variablen deklarieren. Manchmal sind sie leicht zu verwechseln, aber sie unterscheiden sich im Wesentlichen. Der folgende Artikel stellt Ihnen den Unterschied zwischen den Schlüsselwörtern „var“ und „dynamic“ in C# vor. Ich hoffe, er wird Ihnen hilfreich sein. [Video-Tutorial-Empfehlung: C#-Tutorial]

Was ist der Unterschied zwischen Var und Dynamic in C#?

C#-Var-Schlüsselwort

var ist ein neuer variablendefinierender Typ in 3.5: impliziter Typ; er kann zum Definieren implizit typisierter lokaler Variablen verwendet werden, und VAR kann jeden Typ ersetzen.

Implizit typisierte Variablen sind Variablen, die ohne explizite Angabe des Datentyps deklariert werden. Bei einer implizit typisierten Variablen leitet der Compiler zur Kompilierungszeit automatisch den Typ der Variablen aus dem Wert ab, der zum Initialisieren der Variablen verwendet wird. Das Konzept implizit typisierter Variablen wurde in C# 3.0 eingeführt. Implizit typisierte Variablen sind nicht dafür gedacht, gewöhnliche Variablendeklarationen zu ersetzen, sondern für die Behandlung einiger Sonderfälle, wie z. B. LINQ (Language Integrated Query).

Beispiel:

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()); 
    } 
}

Ausgabe:

'a'的类型是: System.Char 
'b'的类型是: System.String 
'c'的类型是: System.Double 
'd'的类型是: System.Boolean 
'e'的类型是: System.Int32

Dynamisches C#-Schlüsselwort

dynamic ist ein neuer Typ der Variablendefinition in 4.0: dynamischer Typ; er wird verwendet, um eine Typprüfung während der Kompilierung zu vermeiden. Der Compiler überprüft den Typ einer dynamisch typisierten Variablen nicht zur Kompilierungszeit, sondern ruft den Typ zur Laufzeit ab. Dynamisch typisierte Variablen werden mit dem Schlüsselwort „dynamic“ erstellt.

Beispiel:

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()); 
    } 
}

Ausgabe:

val1的实际类型是:System.Char
val2的实际类型是:System.String
val3的实际类型是:System.Int32
val4的实际类型是:System.Double
val5的实际类型是:System.Boolean

Was ist der Unterschied zwischen den Schlüsselwörtern var unddynamic in C#?

1. Deklarierte Variablen

Das Schlüsselwort var wurde in C# 3.0 eingeführt. Der Typ wird durch statische Variablen bestimmt Der Compiler zur Kompilierungszeit.

Das Schlüsselwort „dynamic“ wurde in C# 4.0 eingeführt. Die deklarierten Variablen werden dynamisch typisiert und der Typ der Variablen wird vom Compiler zur Laufzeit bestimmt.

2. Initialisierung

Mit dem Schlüsselwort var deklarierte Variablen sollten bei der Deklaration initialisiert werden, damit der Compiler den Typ der Variablen anhand des initialisierten Werts bestimmt. Wenn die Variable nicht initialisiert ist, wird ein Fehler ausgegeben.

Mit dem dynamischen Schlüsselwort deklarierte Variablen müssen bei der Deklaration keine Variablen dieses Typs initialisieren, da der Compiler den Typ der Variablen zum Zeitpunkt der Kompilierung nicht kennt. Wenn die Variable nicht initialisiert ist, wird kein Fehler ausgegeben.

3. IntelliSense-Unterstützung

Das Schlüsselwort var unterstützt IntelliSense in Visual Studio. Das Schlüsselwort „dynamic“ unterstützt IntelliSense in Visual Studio nicht

4. Anwendung

Das Schlüsselwort „var“ kann nicht für Attribute oder zur Rückgabe von Werten von Funktionen verwendet werden. Sie kann nur als lokale Variable innerhalb einer Funktion verwendet werden.

Das Schlüsselwort „dynamic“ kann für Eigenschaften oder die Rückgabe von Werten von Funktionen verwendet werden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Var und Dynamic in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn