Nueva variable dinámica en C # 4.0
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.
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