2009-11-20 20 views
12

Quiero saber de qué sirve la palabra clave "using" en C#, soy nuevo en esto ... cuando necesitamos usar la palabra clave "using" ... lo busqué en Google, no podría estar satisfecho con las respuestas. Todavía quiero saber un poco más de usted geeks ..uso de la palabra clave "using" en C#

Gracias

+6

Usar la palabra clave 'using' puede ser útil. Usar 'using' ayuda a prevenir problemas al usar excepciones. Usar 'using' puede ayudarte a usar objetos desechables de forma más útil. Usar un 'uso' diferente te ayuda a usar espacios de nombres o nombres de tipos. Bastante útil. –

+2

¡LOL! Un * útil * comentario, Michael! : D –

+0

Ver también: [utilizando: una palabra clave Wonder C#] (http://technowide.net/2014/12/29/using-wonder-c-keyword/) –

Respuesta

25

dos usos:

  • Uso de directivas, por ejemplo,

    using System; 
    using System.IO; 
    using WinForms = global::System.Windows.Forms; 
    using WinButton = WinForms::Button; 
    

    Se utilizan para importar espacios de nombres (o crear alias para espacios de nombres o tipos). Éstos van en la parte superior del archivo, antes de cualquier declaración.

  • Uso de declaraciones e.g.

    using (Stream input = File.OpenRead(filename)) 
    { 
        ... 
    } 
    

    Esto sólo se puede utilizar con tipos que implementan IDisposable, y es el azúcar sintáctica para un fin bloque try/Dispose que se pide en el bloque finally. Esto se usa para simplificar la administración de recursos.

+0

quieres decir ... cuando creamos objetos usando new o alguna otra cosa es bueno usar "usar" bien ... así que no tenemos que deshacernos de ellos o cerrarlos explícitamente ¿verdad? ... – Naruto

+3

@GrabIt, como dijo Jon solo aquellos que implementan IDisposable. – ParmesanCodice

+0

Oh, sí, lo tengo .. Gracias – Naruto

11

usando tiene dos significados en C#:

  • utilizando para IDisposable significa que cuando el bloque de la utilización de extremos Dispose método será llamado.
  • usando para espacio de nombres significa que los tipos del espacio de nombres importado se referenciarán en el código.

ejemplo básico de cómo el uso de bloques:

Una "falsa" clase desechable:

public class DisposableClass : IDisposable 
{ 
    public static bool WasDisposed { get; private set;} 

    public void Dispose() 
    { 
     WasDisposed = true; 
    } 
} 

Algunos código muy sencillo que muestra cuando Desechar se llama:

[Test] 
public void DisposeSample() 
{ 
    using (var disposableClass = new DisposableClass()) 
    { 
     Assert.IsFalse(DisposableClass.WasDisposed); 
    } 

    Assert.IsTrue(DisposableClass.WasDisposed); 
} 
2

Seguro que habrá un duplicado de este en alguna parte ... sin embargo, en pocas palabras, el uso de palabras clave se usa para especificar el alcance del objeto que están creando. El objeto se elimina una vez que sale del bloque de uso, es decir, se llama a Dispose automáticamente.

Ver using Statement (C#) para más detalles.

2

Le brinda una manera fácil de limpiar los recursos después de que haya terminado con ellos. Con el utilizando el constructo, una vez que haya terminado utilizando los recursos, se liberan automáticamente. Incluso limpia los recursos en el caso de una excepción.

3

Hay tres usos:

No creo que puedo explicar con mayor claridad que los artículos de MSDN en términos generales. Si tiene problemas para entenderlos, es mejor que publique una pregunta más específica con respecto a los detalles que no comprende.

1

Hay dos usos de la 'utilizar' palabras clave:

  • como Directiva usando, que permite el uso de tipos en un espacio de nombres. Por ejemplo: using System.Web
  • como una declaración utilizando, que solo es posible para los tipos heredados de IDisposable. Esto llama automáticamente al método Dispose() en el objeto después de la instrucción using sale del ámbito, por lo que no tiene que preocuparse de forma automática llamar a este método usted mismo, o llamando Close() en las conexiones de bases de datos, por ejemplo:

    usando (MySqlConnection = conexión nueva MySqlConnection()) { // ..}

3

La palabra clave "using" también se puede usar para crear alias de tipo. Aquí Item es un alias de Diccionario. Este enfoque puede ahorrar algo de tecleo :)

Por ejemplo,

using Item = System.Collections.Generic.Dictionary<string, string>; 
namespace Sample 
{ 
    using Records = Dictionary<int, Item>; 
    public class Controller 
    { 
     Records recordDictionary = new Records(); 
    } 
} 
6

Asumo you'r hablando del bloque de control usando y no el [espacio de nombres] usando comunicado. Básicamente, la palabra clave es azúcar sintáctica para inicializar y eliminar objetos de forma segura. Funciona con cualquier objeto que implemente IDisposable. los siguientes:

using(MyType obj = new MyType()) 
{ 
    ... do stuff. 
} 

es equivalente a:

MyType obj = new MyType(); 
try 
{ 
    .... do stuff 
} 
finally 
{ 
    if(obj != null) 
    { 
     obj.Dispose(); 
    } 
} 
+0

¡me ganó por 10 segundos! – RickNZ

+0

@RickNz - la próxima vez :) –

0

Hay dos usos diferentes del utilizando palabra clave en C#:

  1. Declarar alcance paquete implícita, por ejemplo "usando el sistema";
  2. Para hacer que se llame al método Dispose() de un objeto IDisposable.

En el último caso, using(myVar) {} es la abreviatura de:

IDisposable disposable = (IDisposable)myVar; 
try 
{ 
    // your code here 
} 
finally 
{ 
    if (disposable != null) 
     disposable.Dispose(); 
} 
0

utilizando se puede usar para:

  • espacios de nombres "importados", es decir, uso ellos
  • crean una alias para un tipo (como typedef en los días de C++)
  • disponer un objeto inmediatamente después de su uso
0

usando la palabra clave puede utilizarse para importar (Asociado) un namspace o biblioteca con nuestra program.so que la función está disponible en el que podemos utilizar las bibliotecas en nuestro programa. Su algo así como una referencia

Ex: using System.IO

Esto significa Vamos a utilizar algunas de las funciones presentes en esa biblioteca

Usted puede escribir su propia biblioteca y la importación utilizando la instrucción using . Ex:

namespace MyProject.MyNamspace 
{ 
public class MyCustomClass 
{ 
    public static string MyFunctionToSmile() 
    { 
    return "He he he heeee"; 
    } 
} 

}

y en ur # c página, utilice esta

using MyProject.MyNamspace 

public class MyClass 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write(MyCustomClass.MyFunctionToSmile()); 
} 
} 

frío ...!

4

Hay dos usos de la palabra clave.

Una es cuando eres demasiado perezoso para escribir System.Web.UI.WebControls.TextBox agregas using System.Web.UI.WebControls en la parte superior de tu archivo de código y de ahora en adelante solo escribes TextBox. Eso es todo lo que hace: acorta el código que tiene que escribir (y lo hace más fácil de leer).

El otro tiene que ver con la interfaz IDisposable. Esta interfaz es para objetos que necesitan limpieza una vez que haya terminado de usarlos. Al igual que los archivos, que necesitan ser cerrados, o conexiones de DB, o ese tipo de cosas. Simplemente puede realizar una llamada al método Dispose() usted mismo donde sea necesario, pero esto lo hace más fácil.En resumen, lo siguiente:

using (var X = new MyObject()) 
{ 
    // Code goes here 
} 

es equivalente a esto:

var X = new MyObject(); 
try 
{ 
    // Code goes here 
} 
finally 
{ 
    if (X != null) 
     X.Dispose(); 
} 

Una vez más - es una forma abreviada de un trozo de código que garantiza, que no importa lo que pase, el método Dispose() será llamado. Incluso cuando su código arroja una excepción, o return fuera del método, se llamará al método Dispose(). Esto asegura que no dejes accidentalmente archivos abiertos o algo así.

En general, si alguna vez usa un objeto que implementa la interfaz IDisposable, colóquelo en un bloque using.

Cuestiones relacionadas