none
Uso de new RRS feed

  • Pregunta

  • Hola:

    El concepto de new no lo tengo claro.

    Una veces se debe usar y otras no, por ejemplo:

    Sqlconection conectar = new Sqlconection ();

    Lo declaro y puedo acceder a sus mienbros.

    Y aqui no:

    WebRequest request = WebRequest.Create.

    ¿No deberia ser asi?

    WebRequest request = new WebRequest();

    ¿No son clases ambas?


    Reinaldo

    sábado, 3 de febrero de 2018 18:27

Respuestas

  • Hola

    Eso es porque hay clases que no necesitan ser instanciadas, una buena explicación esta aqui y otra pregunta parecida a la tuya se encuentra en este hilo 

    Te preguntaras cuando instanciar o no? 

    Instanciar o no Instanciar esa es la cuestion (shakespiare=)

    • Editado greg_dorian sábado, 3 de febrero de 2018 19:07
    • Marcado como respuesta Paradisus sábado, 3 de febrero de 2018 19:21
    sábado, 3 de febrero de 2018 19:05

Todas las respuestas

  • Hola

    Eso es porque hay clases que no necesitan ser instanciadas, una buena explicación esta aqui y otra pregunta parecida a la tuya se encuentra en este hilo 

    Te preguntaras cuando instanciar o no? 

    Instanciar o no Instanciar esa es la cuestion (shakespiare=)

    • Editado greg_dorian sábado, 3 de febrero de 2018 19:07
    • Marcado como respuesta Paradisus sábado, 3 de febrero de 2018 19:21
    sábado, 3 de febrero de 2018 19:05
  • hola

    Es que al usar WebRequest.Create() ese es eun metodo que implementa el patron builder, dentro de esta se crea la instancia y se inicializa, algunas librerias disponene de estos metodos otras no

    el Sqlconection  tambien lo tiene si usas ladb factory

    Obtaining a DbProviderFactory

     DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
    
    connection = factory.CreateConnection();

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 5 de febrero de 2018 13:01
  • La question que propones es senzlla de explicar, hay dos tipos de clases las de instancia y las estaticas, la principial diferencia entre estos dos tipos es que las staticas son clases que no son insntacias y por tanto existen una sola vez para todo el ambito de la aplicación, es decir que  son globales. Explicado esto el hay otro tipo de clases que son las de instancia y esto significa que se pueden crear multiples copias de cada clase en memoria y una particularidad de estas son que poseen constructores (funciones con el mismo nombre de la clase), y aqui es donde se responde a tu pregunta cualquier clase que tenga un constructor tendá que ser declarada con new.

    lunes, 5 de febrero de 2018 13:20