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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] ¿Cómo funciona Using()?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] ¿Cómo funciona Using()?  (Leído 3,020 veces)
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
[C#] ¿Cómo funciona Using()?
« en: 8 Septiembre 2015, 18:27 pm »

Buenas,

Estoy dudoso con el uso de using(){ } he leído referentemente (MSDN) algo de que se ejecuta dicho bloque y luego se elimina, pero no logro entenderlo a la perfección.

Estoy probando con esto:

Código
  1. Console.WriteLine("Vamos a ejecutar el using ok?");
  2.            string respuesta = Console.ReadLine();
  3.  
  4.            using(WebClient wc = new WebClient())
  5.            {
  6.                string laUrl = "http://foro.elhacker.net";
  7.                wc.BaseAddress = laUrl;
  8.                Console.WriteLine("Descargando: " + laUrl);
  9.                byte[] myDatabuffer = wc.DownloadData(laUrl);
  10.  
  11.  
  12.                string download = Encoding.ASCII.GetString(myDatabuffer);
  13.                Console.WriteLine(download);
  14.            }
  15.  
  16.            Console.WriteLine("\nTermino el programa");
  17.  
  18.  
  19.            Console.ReadKey();

Funciona correctamente, pero no logro entender en que casos debo o sería recomendable usarlo y como funciona.

Cualquier información adicional lo agradecería.


Saludos.


« Última modificación: 8 Septiembre 2015, 18:30 pm por YuseTist » En línea

Esta página web no está disponible - Google Chrome
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C#] ¿Cómo funciona Using()?
« Respuesta #1 en: 8 Septiembre 2015, 20:29 pm »

El using llama al método Dispose() al salir del bloque, lo que asegura que se liberarán recursos al finalizar el bloque.

Pero bueno, no digo nada que no ponga en MSDN.

Puedes utilizarlo con clases que hereden de IDisposable.


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] ¿Cómo funciona Using()?
« Respuesta #2 en: 8 Septiembre 2015, 20:39 pm »

El using llama al método Dispose() al salir del bloque, lo que asegura que se liberarán recursos al finalizar el bloque.

¿Esto que significa realmente?
¿Qué se ejecuta el using y luego termina y se ejecuta el siguiente bloque (código) no?

Saludos.
En línea

Esta página web no está disponible - Google Chrome
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C#] ¿Cómo funciona Using()?
« Respuesta #3 en: 8 Septiembre 2015, 22:16 pm »

Si has programado C++, conocerás los bloques de llaves {}. En estos bloques, las variables que se declaran dentro, "desaparecen" al salir del contexto del bloque.
Las variables declaradas dentro de los paréntesis de using (que serán variables que heredan de IDisposable) tienen asegurado que se llamará a su método Dispose().

Para más información, mira la intefraz IDisposable y el método Dispose, así como su utilidad en elementos del lenguaje C#.
En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: [C#] ¿Cómo funciona Using()?
« Respuesta #4 en: 9 Septiembre 2015, 00:13 am »

Para entender la finalidad de la declaración using, el método Dispose / Finalize / Close o la interfáz IDisposable tal vez deberías empezar por el principio, por entender cómo se administran los recursos y cómo se liberan los "residuos".

Lee acerca del recolector de basura de .Net aka GarbageCollector (GC).

Fundamentals of Garbage Collection - MSDN
Garbage Collection - MSDN
Garbage Collector Basics and Performance Hints - MSDN
+
Dispose Pattern - MSDN

Pero un resumen rápido sería más o menos cómo lo que ya han mencionado, cuando finaliza el bloque del using automáticamente se llama al método Dispose el cual se encarga de liberar los recursos utilizados por la instancia del objeto idisposable en cuestión.

Hay que tener en cuenta que la finalidad de algunos miembros simplemente existen para simplificar la escritura de código y conseguir una estructura mejor, pero por cuestión de estética más que nada, cómo lo es el caso de using o cómo lo es también la función Enumerable.AsEnumerable por poner otro ejemplo, simplemente son cosas opcionales que proporcionan un mejor rendimiento o mejor experiencia de cara al usuario, pero que realmente no son estrictamente necesarias de utilizar.

Saludos
« Última modificación: 9 Septiembre 2015, 00:33 am por Eleкtro » En línea



DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C#] ¿Cómo funciona Using()?
« Respuesta #5 en: 9 Septiembre 2015, 19:02 pm »

Gracias por las respuestas.
Me fueron muy útiles, me leí MSDN y ahora entiendo lo de IDiposable, etc..

Saludos.
En línea

Esta página web no está disponible - Google Chrome
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como funciona el dbi
Hacking Wireless
XxTheCochixX 3 5,172 Último mensaje 20 Febrero 2011, 19:50 pm
por XxTheCochixX
¿Como funciona?
Electrónica
BerinGer 3 5,200 Último mensaje 12 Diciembre 2011, 02:22 am
por BerinGer
Como puedo analizar una extensión para ver como funciona?
Software
Di~OsK 1 2,378 Último mensaje 15 Enero 2012, 05:30 am
por Leyer
¿Cómo funciona una pantalla táctil capacitiva? Y como repararla.
Dispositivos Móviles (PDA's, Smartphones, Tablets)
NikNitro! 0 3,736 Último mensaje 15 Noviembre 2012, 13:35 pm
por NikNitro!
¿Qué es un troyano, cómo funciona y cómo podemos protegernos?
Análisis y Diseño de Malware
wolfbcn 3 3,832 Último mensaje 5 Junio 2013, 22:15 pm
por kub0x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines