¿Las variables dinámicas en C# 4.0 pueden ser miembros de una clase o pasados o devueltos por métodos? var de C# 3.0 no pudo pero no he visto ninguna mención de si es posible o no con dynamic.Nueva variable dinámica en C# 4.0
Respuesta
Todo lo anterior. Los probé en la VPC y pude hacer todo esto. Ver el 'New Features in C#' document here
Sí. Hay una gran diferencia entre var
y dynamic
.
var
solo significa "dejar que el compilador infiera el tipo real de la variable".
dynamic
es el tipo de la variable - por lo que cualquier lugar se puede especificar un tipo, puede especificar dynamic
lugar, tal como lo entiendo. (Estoy seguro de que hay algunas excepciones a esto, pero esa es la idea básica.)
EDIT: Chris Burrow first blog entry on dynamic
(hay una ya second one; esperar más pronto) da una clase de ejemplo que utiliza dynamic
por todo el lugar.
Este fragmento de código del libro "CLR a través de C#, 3ª 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 principal, me sale el siguiente resultado:
M (Int32): 10
M (Cadena): AA
- 1. RuntimeBinderException con dinámica en C# 4.0
- 2. C# 4.0: fundición dinámica a estática
- 3. ¿Cuál es el uso práctico de la variable "dinámica" en C# 4.0?
- 4. ¿La nueva palabra clave 'dinámica' C# 4.0 desaprueba la palabra clave 'var'?
- 5. C++ equivalente de la palabra clave "dinámica" de C# 4.0?
- 6. Implementación dinámica de una interfaz en .NET 4.0 (C#)
- 7. ¿Cómo nueva clase anónima dinámica?
- 8. C# dinámica variable LINQ cláusula Where
- 9. Nombre de variable dinámica Usar en C# para WinForms
- 10. Mixins con C# 4.0
- 11. Variable aleatoria dinámica de Jmeter
- 12. ¿El nuevo tipo de variable "dinámica" en .NET 4.0 resuelve el problema de envío de método único/múltiple en CLR?
- 13. Segmentación dinámica en C/C++
- 14. Arrays de longitud variable (dinámica) en Java
- 15. Mecanografía dinámica en C#
- 16. ¿Hay algún problema con la palabra clave dinámica en C# 4.0?
- 17. C# 4.0 Implícitamente Typed objetos dinámicos
- 18. ¿Es esta una nueva implementación en Android 4.0?
- 19. Genérico Varianza en C# 4.0
- 20. creación Clase dinámica en C#
- 21. argumentos definición dinámica en C#
- 22. Asignación dinámica de método/Método como variable
- 23. Ventajas y desventajas de la palabra clave 'dinámica' de C# 4.0?
- 24. ¿La palabra clave "dinámica" de C# 4.0 hace que los genéricos sean redundantes?
- 25. Crear nueva excepción en C++
- 26. C# 4.0 'dinámico' y sentencia foreach
- 27. Intercepción dinámica de llamadas en .NET
- 28. Establecer nombre de variable dinámica En ActionScript 3.0
- 29. C# 4.0, detectar si falta un método
- 30. C# 4.0 rendimiento dinámico de interoperabilidad de Office
Realmente dinámico no es * realmente * el tipo. Más bien dice, no determine el tipo real hasta el tiempo de ejecución. Puede usar "es" en tipos dinámicos y descubrir lo que realmente son. –
Pero dinámico es el tipo de * variable * aún, del mismo modo que si declara "objeto x = new MemoryStream()", entonces el tipo de la variable es "objeto" mientras que el tipo del objeto se refiere al valor de la variable a es "MemoryStream". –
Estoy tratando de encontrar el lugar donde leí MS iluminado que explicaba lo que estaba tratando de explicar. No puedo encontrarlo de nuevo He leído demasiada información de PDC en los últimos dos días. –