Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen Var und Dynamic in C#?
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]
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!