elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Tutorial] Nuevas Características de C# en .Net 4.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Tutorial] Nuevas Características de C# en .Net 4.0  (Leído 5,101 veces)
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
[Tutorial] Nuevas Características de C# en .Net 4.0
« en: 15 Junio 2010, 22:36 pm »

Entre las nuevas características del .Net Framework 4.0 se encuentran las mejoras añadidas a los lenguajes de .Net, hay otros temas importantes de los que les hablaré en otro post, como lo son Parallel Programming and Debugging, Call Hierarchy of methods, Code Contracts, Web.config transformation, entre otros.

Ahora veamos las mejoras a C#:

Dynamic Types (Tipos dinámicos) and Dynamic Programming (Programación dinámica)

Encontramos ahora una nueva palabra reservada, llamada dynamic. La cual essencialmente permite la comunicación o post enlazamiento de una variable. Veamos como se hace:

Supongamos tenemos un método que tiene que retornar una clase dependiendo del valor del parámetro, es decir, no sabemos el tipo de datos de retorno, por lo tanto será objet:

Código
  1. public class Product
  2. {
  3.   public decimal GetPrice()
  4.   {
  5.      return 5;
  6.   }
  7. }
  8. public class Service
  9. {
  10.   public decimal GetPrice()
  11.   {
  12.      return 9;
  13.   }
  14. }public object RetrieveItem(bool b)
  15. {
  16.    if(b)
  17.      return new Product();
  18.    else
  19.      return new Service();
  20. }

Ahora vamos a usar el método:

Código
  1. dynamic item = RetrieveItem(true);
  2. decimal value =  item.GetPrice();
  3.  

Como ven, item es object como todo en .Net, PERO, esta vez es dynamic, por lo que podemos ahora esperar que compile, sabiendo de que item puede ser de varios tipos. Otra forma de solucionar esto sería con clases base o interfaces, pero no siempre son la solución para este tipo de cosas realmente sencillas.

Optional Parameters (Parámetros Opcionales)

Muchos programadores de VB.Net saben que esto no es nuevo, pero hasta ahora no había sido aplicado a C#, pero ahora lo tenemos!!

Código
  1. private void SetName(string name="Juan")
  2. {
  3.   //...
  4. }

Entonces, si hacemos la llamada al método sin parámetros, no ocurrirá ninún error, puesto que el parámetro es opcional:

Código
  1. SetName();

Ya vemos que es muy sencillo y ahora nos ahorramos todas esas sobrecargas de métodos con diferentes valores para cada una.  Implementar parametros opcionales en nuestro código nos puede ayudar mucho a hacer las clases menos complejas y más fáciles de leer.

Named and Optional Arguments (Argumentos opcionales y nombrados)

Bueno se nota á primera vista que ésta funcionalidad está muy relacionada con los parámetros opcionales, y claro que lo está pero ya veremos la diferencia. A el siguiente método solo queremos pasarle los valores de lastName y address, pero no el de firstName:

Código
  1. private void SetInfo(string name="Juan",
  2.                     string lastName="Andreu",
  3.                     int age=23)
  4. {
  5.   //...
  6. }

Este método podemos llamarlo de la siguiente mánera:

Código
  1. SetInfo(lastName:"Pérez",age:18);

Ésto lo hemos visto antes en los atributos de las clases, pero ahora está disponible para todos los métodos.

Espero les haya gustado


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [Tutorial] Nuevas Características de C# en .Net 4.0
« Respuesta #1 en: 15 Junio 2010, 23:54 pm »

Lo primero si es nuevo


Pero.... lo de los parametros opcinales no habian sido incuidos en la .net 3.5?? ._. me parecia que si :xD (yo no lo se porque solo programo en 2.0 :P)





EDIT!: Si, leyendo otras cosas me di cuenta de que es asi XD pero ojo!!!

Mira esta entrada de blog que me salto de geeks.ms ..... es muuuy interesante y revela lo oculto del .net 4.0 (que dramatico suena xD)

Parámetros opcionales: úsense con precaución - Variable not found en Geeks.ms


« Última modificación: 16 Junio 2010, 00:52 am por raul338 » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: [Tutorial] Nuevas Características de C# en .Net 4.0
« Respuesta #2 en: 16 Junio 2010, 01:19 am »

Claro Raul, era de suponerse, es la misma práctica de no hardcodear valores que puedan cambiar, como cadenas de conexión, ivas, rutas, etc.

Pero tiene mucho más de positivo que negativo, como la reducción de sobrecargas que son "tontas" por el simple hecho de que al no pasar un valor simplemente lo pasa como 0, o true, o X valor. Para esto ayuda muchísimo.

Pero bueno, para mi el mejor cambio es Dynamic Types, que en realidad si es algo necesario a la hora de desarrollar aplicaciones rápidas (la mayoría lol)

Saludos y gracias por el enlace, que está muy interezante.
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [Tutorial] Nuevas Características de C# en .Net 4.0
« Respuesta #3 en: 16 Junio 2010, 01:42 am »

Pero se supone que no tiene que ser asi jeje xD, para eso lo sobrecargo y listo :P afecta solo mi ensamblado

Si...el dynamic es una buena invencion, pero a mi me interesa la programacion paralela :xD
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: [Tutorial] Nuevas Características de C# en .Net 4.0
« Respuesta #4 en: 16 Junio 2010, 02:28 am »

Si justo estoy escribiendo sobre eso, pero es muy largo y PLINQ y todo eso.. pero va para unas semanas hahaha
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Demonio - Video de nuevas caracteristicas y vision general
Análisis y Diseño de Malware
paju1986 0 2,151 Último mensaje 10 Julio 2011, 12:11 pm
por paju1986
Las nuevas características Firefox 12
Noticias
wolfbcn 0 18,700 Último mensaje 30 Enero 2012, 02:33 am
por wolfbcn
Publicadas muchas de las nuevas características que traerá Office 15
Noticias
wolfbcn 1 1,623 Último mensaje 6 Marzo 2012, 23:14 pm
por farresito
iTunes 11, repasamos todas sus nuevas características
Noticias
wolfbcn 0 1,414 Último mensaje 13 Septiembre 2012, 21:13 pm
por wolfbcn
Microsoft revela todas las nuevas características de Windows 8.1
Noticias
wolfbcn 0 1,270 Último mensaje 18 Septiembre 2013, 12:54 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines