¿Cuáles son las nuevas características más interesantes que están buscando, o que han escuchado están lanzando en C# 4.0.Nuevas funciones interesantes de C# 4.0
Respuesta
Parece que la palabra clave dinámica puede cerrar la brecha entre lenguajes dinámicos como IronRuby o IronPython bastante bien, lo que probablemente ayudará a su adopción en el monocultivo de Microsoft ... eso me emociona.
Mientras estoy intrigado por ella, yo también estoy preocupado que va a ser usado en exceso, como los genéricos y LINQ, SQLCLR, etc :) suena
El material dinámico fresco si lo necesita pero no esperes usarlo muy a menudo.
La varianza genérica para los delegados e interfaces es similar - la falta de varianza es un dolor de cabeza en este momento, pero muchos de los lugares en los que es un dolor no será cubierto por la limitada variación disponible en C# 4.
Las características COM no me interesan particularmente, realmente debería tener más control sobre lo que son.
parámetros opcionales y con nombre podrían hacer una gran diferencia en la construcción de tipos inmutables: permite una sintaxis como:
Person p = new Person (name: "Jon", age: 32);
sin tener combinaciones de mamut de sobrecargas del constructor. Preferiría un poco más de soporte para escribir tipos inmutables en forma de propiedades recién implementadas automáticamente, pero no espero que los obtengamos. (Desde luego, no están en la lista de características propuestos por el momento.)
Personalmente estoy realmente más interesado en un par de los marco características de .NET 4.0 - en particular code contracts y parallel extensions.
Para agregar un ejemplo de esto, consulte: http://marcgravell.blogspot.com/2008/11/immutability-and-optional-parameters.html –
Este video es informativo si tiene una hora para matar ... http://channel9.msdn.com/pdc2008/TL16/ – user10178
Contratos de código + 1 –
Método valores por defecto de parámetros:
public void MyMethod1(string value1 = "test", int num1 = 10, double num2 = 12.2)
{
//...
}
tipos de retorno también quizá anónimos:
public var MyMethod2()
{
// ..
}
Entonces, ¿los valores predeterminados de los parámetros significan que podemos llamarlos así? obj.MyMethod1 ("prueba", 1); ¿Funcionaría con su método proporcionado? – mxmissile
Este fue el # 1 que me perdí cuando cambié de VB.NET a C#. – MiffTheFox
funcionaría y las variables se verían así: value1 = "test", num1 = 1, num2 = 12.2 – Atmocreations
IDynamicObject
, el pegamento detrás dynamic
, permite la interpretación de una llamada en tiempo de ejecución.
Esto es interesante para escenarios intrínsecamente sin tipo, como REST, XML, COM, DataSet
, lenguajes dinámicos y muchos otros. Es una implementación de dynamic dispatch construida en la parte superior de Dynamic Language Runtime (DLR).
En lugar de la semántica de reflexión engorroso, punto en variables declaró como dynamic
. Imagine trabajar con objetos de Javascript de Silverlight:
dynamic obj = GetScriptObject();
HtmlPage.Window.Alert(obj.someProperty);
Todo sintaxis de C# es compatible (creo):
HtmlPage.Window.Alert(obj.someMethod() + obj.items[0]);
reflexión en sí parece mucho más limpio:
public void WriteSomePropertyValue(object target)
{
Console.WriteLine((target as dynamic).SomeProperty);
}
public void WriteSomeMethodValue(object target, int arg1, string arg2)
{
Console.WriteLine((target as dynamic).SomeMethod(arg1, arg2));
}
dynamic
es otra herramienta en el kit de herramientas. No cambia el estático vs.debate dinámico, simplemente alivia la fricción.
Holy crap .... No había pensado en lanzar objetos a la dinámica. ¡Eso hace que la reflexión sea más fácil! – Will
Compatibilidad mejorada para Expression Trees!
No sé si los llamaría geniales. Mis compañeros de trabajo los maltratan tanto que desearía que los quitaran. –
@AndrewHoffman algo significativamente útil tiene el poder de ser abusado –
No es estrictamente C#, pero desde .NET está marcado aquí hay un buen enlace con respecto BCL changes.
Nota a la libre: debe cambiar el nombre de mi método de extensión antes de Stopwatch.Restart()
4.0 se libera :)
- C# 2.0 -Generics (se añadió soporte .NET Framework, y C# se benefició de esto); patrón iterador (la palabra clave yield); métodos anónimos (la palabra clave del delegado), tipos anulables y el operador coalescente nulo (??).
- C# 3.0 tipos -Anónimo, métodos de extensión, inicializadores de objeto, inicializadores de colección, las variables locales implícitamente mecanografiadas (palabra clave var), expresiones lambda (=>), y el patrón de expresión de consulta LINQ.
- C# 4.0 Parámetros -Opcional y argumentos con nombre, tipado dinámico (tipo dinámico), la mejora de COM-Interop, y la Contra y covarianza.
C# 4,0
1) PLINQ
2) con nombre y parámetros opcionales
3) Lazy
4) Co & Contra Varianza
5) Tarea Paralelo
6) de objetos dinámicos objetos
7) Expando
8) Mejora de la COM-Interop
9) Tupla
sólo para nombrar unos pocos Capacidad
escribir código asíncrono en modo síncrono con async y aguarde es genial.
- 1. Lista de nuevas funciones en C# 2.0, 3.0 y 4.0
- 2. Funciones paralelas en .Net 4.0
- 3. WCF 4.0 nuevas mejoras sobre WCF 3.5
- 4. Agregar nuevas funciones a una interfaz
- 5. Aspectos interesantes de PostSharp
- 6. ¿Cuáles serán las nuevas características disponibles en ASP.Net 4.0?
- 7. Características del lenguaje nuevas más útiles o interesantes en Java 5 y 6?
- 8. Generando imágenes moderadamente interesantes
- 9. XNA 4.0 con C# .NET 4.5?
- 10. 2 preguntas básicas pero interesantes sobre .NET
- 11. ¿Cómo usar de forma segura las nuevas funciones de Linux?
- 12. funciones dentro de las funciones en C
- 13. ¿Las clases Java más interesantes/útiles?
- 14. Polyfill o soluciones para las nuevas funciones de ECMAScript5?
- 15. Tratando de aprender acerca de las nuevas funciones asíncronas en C#
- 16. C# 3 nuevas publicaciones de funciones (y no sobre las características de .Net 3.5)
- 17. Mixins con C# 4.0
- 18. ¿Dónde puedo enviar solicitudes de nuevas funciones en el lenguaje C#?
- 19. Normalizar nuevas líneas en C#
- 20. DSL interesantes, implementados en Scala?
- 21. ¿C++ 11 for loop permite optimizaciones nuevas o mejores?
- 22. ¿Cómo encuentras problemas interesantes para resolver?
- 23. Evitando el infierno de sobrecarga con C# 4.0
- 24. C++ Funciones de miembros vs funciones gratuitas
- 25. Genérico Varianza en C# 4.0
- 26. ¿Cuáles son algunos guiones de shell interesantes?
- 27. es C# 4.0 covariante Tupla
- 28. ¿Vale la pena la actualización a C# 4.0
- 29. C funciones de prototipo
- 30. Mapa de funciones C++
También me preocupa el uso excesivo de la dinámica. Afortunadamente puedo agregar el estilo verificarlo en checkin – CVertex
¿Genéricos sobreutilizados? Estoy de acuerdo con LINQ en que a veces se usa en exceso ... –