none
¿Qué diferencia hay entre usar import o referenciarlo directamente con el objeto? RRS feed

  • Pregunta

  • Por ejemplo: uso Encoding en una línea y para que corra tengo dos alternativas:

    ------------------------------------------------------------------------------------------------

    1º Invocar: Imports System.Text al comienzo de la clase

    2º Invocarlo en la linea en la que uso Encoding, así: System.Text.Encoding.Default

    -------------------------------------------------------------------------------------------------

    ¿Desde el punto de vista del uso de recursos o de la velocidad de procesamiento hay alguna diferencia en usarlo de una u otra forma?


    • Editado James2016-2 miércoles, 19 de julio de 2017 2:59
    miércoles, 19 de julio de 2017 2:59

Respuestas

  • La ventaja de usar la directiva Imports versus nombrar el tipo de manera completa se da únicamente en tiempo de codificación: te evita especificar el tipo incluyendo el espacio de nombres por cada llamada, no hay mas ventaja, no hay ganancia alguna en términos de rendimiento, de hecho el código resultante (CIL) nombra el tipo de manera completa, el conjunto de instrucciones CIL no contiene ninguna especificación de Imports o similares.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta James2016-2 miércoles, 19 de julio de 2017 4:11
    miércoles, 19 de julio de 2017 4:06
  • Para cerra la idea, nota el código CIL resultante utilizando la directiva Imports:

    Imports System.IO
    Imports System.Text
    
    Module Module1
    
        Sub Main()
            Dim lineas = File.ReadAllLines("Ruta", Encoding.Default)
        End Sub
    
    End Module

    - Código CIL

    .method public static void  Main() cil managed
    {
    	// ...  
    	IL_000b:  call  string[] [mscorlib]System.IO.File::ReadAllLines(string,
    						class [mscorlib]System.Text.Encoding)
    	// ...
    } // end of method Module1::Main


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta James2016-2 miércoles, 19 de julio de 2017 4:51
    miércoles, 19 de julio de 2017 4:39

Todas las respuestas

  • La ventaja de usar la directiva Imports versus nombrar el tipo de manera completa se da únicamente en tiempo de codificación: te evita especificar el tipo incluyendo el espacio de nombres por cada llamada, no hay mas ventaja, no hay ganancia alguna en términos de rendimiento, de hecho el código resultante (CIL) nombra el tipo de manera completa, el conjunto de instrucciones CIL no contiene ninguna especificación de Imports o similares.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta James2016-2 miércoles, 19 de julio de 2017 4:11
    miércoles, 19 de julio de 2017 4:06
  • Para cerra la idea, nota el código CIL resultante utilizando la directiva Imports:

    Imports System.IO
    Imports System.Text
    
    Module Module1
    
        Sub Main()
            Dim lineas = File.ReadAllLines("Ruta", Encoding.Default)
        End Sub
    
    End Module

    - Código CIL

    .method public static void  Main() cil managed
    {
    	// ...  
    	IL_000b:  call  string[] [mscorlib]System.IO.File::ReadAllLines(string,
    						class [mscorlib]System.Text.Encoding)
    	// ...
    } // end of method Module1::Main


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta James2016-2 miércoles, 19 de julio de 2017 4:51
    miércoles, 19 de julio de 2017 4:39
  • Entiendo, básicamente evita tener que estar escribiendo la referencia en cada línea que se use, digamos que el compilador se encarga de eso.
    miércoles, 19 de julio de 2017 4:51