Maison  >  Article  >  développement back-end  >  Quelle est la différence entre var et dynamique en C# ?

Quelle est la différence entre var et dynamique en C# ?

青灯夜游
青灯夜游original
2019-04-17 11:46:415109parcourir

En C#, les mots-clés var et Dynamic peuvent déclarer des variables typées dynamiquement. Parfois, ils sont facilement confondus, mais ils sont essentiellement différents. L'article suivant vous présentera la différence entre les mots-clés var et Dynamic en C#. J'espère qu'il vous sera utile. [Recommandation du didacticiel vidéo : Tutoriel C#]

Quelle est la différence entre var et dynamique en C# ?

Mot clé C# var

var est un nouveau type de définition de variable dans la version 3.5 : type implicite ; il peut être utilisé pour définir des variables locales implicitement typées, et VAR peut remplacer n'importe quel type.

Les variables typées implicitement sont des variables déclarées sans spécifier explicitement le type de données. Dans une variable implicitement typée, le compilateur déduit automatiquement le type de la variable au moment de la compilation à partir de la valeur utilisée pour initialiser la variable. Le concept de variables implicitement typées a été introduit en C# 3.0. Les variables typées implicitement ne sont pas conçues pour remplacer les déclarations de variables ordinaires, elles sont conçues pour gérer certains cas particuliers, tels que LINQ (Language Integrated Query).

Exemple :

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

Sortie :

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

Mot clé dynamique C#

dynamic est un nouveau type de définition de variable dans la version 4.0 : le type dynamique est utilisé pour éviter la vérification du type au moment de la compilation. Le compilateur ne vérifie pas le type d'une variable typée dynamiquement au moment de la compilation, mais obtient le type au moment de l'exécution. Les variables typées dynamiquement sont créées à l'aide du mot-clé dynamique.

Exemple :

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

Sortie :

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

Différence entre les mots-clés var et Dynamic en C# Qu'est-ce que il?

1. Variables déclarées

Le mot-clé var a été introduit en C# 3.0 Les variables déclarées sont des types statiques. le compilateur au moment de la compilation.

Le mot-clé dynamique a été introduit dans C# 4.0. Les variables déclarées sont typées dynamiquement et le type de la variable est déterminé par le compilateur au moment de l'exécution.

2. Initialisation

Les variables déclarées avec le mot-clé var doivent être initialisées lors de leur déclaration, afin que le compilateur détermine le type de la variable en fonction de la valeur initialisée. Si la variable n'est pas initialisée, une erreur est générée.

Les variables déclarées avec le mot-clé dynamique n'ont pas besoin d'initialiser les variables de ce type lorsqu'elles sont déclarées, car le compilateur ne connaît pas le type de la variable au moment de la compilation. Si la variable n'est pas initialisée, aucune erreur ne sera générée.

3. Prise en charge d'IntelliSense

Le mot-clé var prend en charge IntelliSense dans Visual Studio. Le mot-clé dynamique ne prend pas en charge intelliSense dans Visual Studio

4. Application

Le mot-clé var ne peut pas être utilisé pour les attributs ou pour renvoyer des valeurs de fonctions. Elle ne peut être utilisée que comme variable locale dans une fonction.

Le mot-clé dynamique peut être utilisé pour les propriétés ou pour renvoyer des valeurs à partir de fonctions.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn