Question

Les variables dynamiques en C # 4.0 peuvent-elles être membres d'une classe ou transmises ou renvoyées à des méthodes? var de C # 3.0 n'a pas pu mais je n'ai vu aucune mention nulle part de savoir si c'est possible ou non avec dynamique.

Était-ce utile?

La solution

Toutes ces réponses. Je les ai essayés dans le VPC et j'ai pu faire tout cela. Voir le document "Nouvelles fonctionnalités en C #" ici

.

Autres conseils

Oui. Il y a une grande différence entre var et dynamique .

var signifie simplement "laissez le compilateur déduire le type réel de la variable".

dynamique est le type de la variable. Ainsi, partout où vous pouvez spécifier un type, vous pouvez spécifier dynamic à la place, si je comprends bien. . (Je suis sûr qu'il y a des exceptions à cela, mais c'est l'idée de base.)

EDIT: première entrée de blog sur dynamic ( deuxième déjà; attendez plus) donne un exemple de classe qui utilise dynamic partout.

Cet extrait de code du livre "CLR via C #, 3rd Ed". montre la dynamique en action:

using System;
using System.Dynamic;
static class DyanmicDemo
{
    public static void Main() {
  for(Int32 demo =0; demo < 2; demo++) {
   dynamic arg = (demo == 0) ? (dynamic) 5 : (dynamic) "A";
   dynamic result = Plus(arg);
   M(result);
  }
 }
    private static dynamic Plus(dynamic arg) { return arg + arg; }
    private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
    private static void M(String s) { Console.WriteLine("M(String): " + s); }
}

Lorsque j'exécute Main, j'obtiens le résultat suivant:

M (Int32): 10

M (chaîne): AA

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top