Pregunta

¿Las variables dinámicas en C # 4.0 pueden ser miembros de una clase o pasarse o devolverse desde métodos? var de C # 3.0 no pudo, pero no he visto ninguna mención de si es posible o no con la dinámica.

¿Fue útil?

Solución

Todo lo anterior. Los probé en la VPC y pude hacer todo esto. Vea el documento 'Nuevas funciones en C #' aquí

Otros consejos

Sí Hay una gran diferencia entre var y dynamic .

var simplemente significa " dejar que el compilador infiera el tipo real de la variable " ;.

dynamic es el tipo de la variable, por lo que en cualquier lugar donde pueda especificar un tipo, puede especificar dynamic , según tengo entendido . (Estoy seguro de que hay algunas excepciones a esto, pero esa es la idea básica).

EDITAR: de Chris Burrow en la primera entrada de blog en dinámica (hay un el segundo ya; espere más pronto) ofrece una clase de ejemplo que utiliza dynamic en todo el lugar.

Este fragmento de código del libro " CLR a través de C #, 3rd Ed " Muestra dinámica en acción:

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

Cuando ejecuto Main, obtengo el siguiente resultado:

M (Int32): 10

M (Cadena): AA

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top