C# CONSTRUCTORS

16/06/2005 - 17:43 por Jose Fernandez | Informe spam
Hola
baje unos ejemplos y me encontre con algo curioso y me viene la pregunta...

Una clase, aunque no se le declare un constructor, opr defecto crea uno? me
imagino que cree un NombreClase() por defecto.
Porque en el ejemplo tengo una clase User que no tiene constructor y en otra
clase se crea del modo User usuario=new User() pero User() no aparece en
ningun lugar de la clase User.
Es esto posible? C# asume que cada clase por defecto tiene un constructor si
no esta implicito? Es la unica explicacion logica que le encuentro.

Gracias por adelantado.

Preguntas similare

Leer las respuestas

#1 Pedro
16/06/2005 - 19:56 | Informe spam
Efectivamente.

Lo que dices es correcto. Si al escribir una clase no declaras ningún
constructor, tienes disponible el constructor por defecto. Por el
contrario, si declaras algún constructor que adquiera algún
parámetro, deberás declarar de manera explícita el constructor por
defecto, porque sino no podrás hacer uso de él.

Saludos.

Pedro.
Respuesta Responder a este mensaje
#2 Matias Iacono
16/06/2005 - 21:49 | Informe spam
Hasta donde recuerdo, lo que dices es correcto.

Saludos,

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"Jose Fernandez" escribió en el mensaje
news:
Hola
baje unos ejemplos y me encontre con algo curioso y me viene la
pregunta...

Una clase, aunque no se le declare un constructor, opr defecto crea uno?
me imagino que cree un NombreClase() por defecto.
Porque en el ejemplo tengo una clase User que no tiene constructor y en
otra clase se crea del modo User usuario=new User() pero User() no aparece
en ningun lugar de la clase User.
Es esto posible? C# asume que cada clase por defecto tiene un constructor
si no esta implicito? Es la unica explicacion logica que le encuentro.

Gracias por adelantado.

Respuesta Responder a este mensaje
#3 Julio Casal
19/06/2005 - 08:25 | Informe spam
Sí amigo, si tú no declaras ningún constructor explícitamente en tu clase, la
misma aún tiene un constructor default que no recibe parámetros. Es gracias a
eso que puedes instanciar un objeto de una clase que no tiene constructor.
Sin embargo, si le declaras al menos un constructor a la clase, pues ahí si
ya deja de existir ese constructor default.

Saludos.

Julio Casal
Developer Senior .Net
MCP


"Jose Fernandez" wrote:

Hola
baje unos ejemplos y me encontre con algo curioso y me viene la pregunta...

Una clase, aunque no se le declare un constructor, opr defecto crea uno? me
imagino que cree un NombreClase() por defecto.
Porque en el ejemplo tengo una clase User que no tiene constructor y en otra
clase se crea del modo User usuario=new User() pero User() no aparece en
ningun lugar de la clase User.
Es esto posible? C# asume que cada clase por defecto tiene un constructor si
no esta implicito? Es la unica explicacion logica que le encuentro.

Gracias por adelantado.



Respuesta Responder a este mensaje
#4 Pedro Luna Montalvo
19/06/2005 - 19:12 | Informe spam
Otro punto que vale la pena anotar es que el constructor por defecto que se
crea tiene un ambito publico.

Y que, como bien indicaron, solamente se crea este constructor por defecto
(publico y sin parametros), si no se ha definido ningun otro constructor.

Por ejemplo, para las siguientes clases no se generaran los constructores
predeterminados, pues si se definen constructores, aunque sean privados.

class A {
private A() {
}
}

class B {
private B(int param1) {
}
}

El efecto de esto es que los constructores no seran accesibles para ningun
elemento externo a la clase, o sea, son clases de las cuales externamente no
se podra obtener una instancia.


Saludos,
Pedro Luna Montalvo, [MVP VB.NET]
Gye, Ecu

"Jose Fernandez" escribió en el mensaje
news:
Hola
baje unos ejemplos y me encontre con algo curioso y me viene la
pregunta...

Una clase, aunque no se le declare un constructor, opr defecto crea uno?
me imagino que cree un NombreClase() por defecto.
Porque en el ejemplo tengo una clase User que no tiene constructor y en
otra clase se crea del modo User usuario=new User() pero User() no aparece
en ningun lugar de la clase User.
Es esto posible? C# asume que cada clase por defecto tiene un constructor
si no esta implicito? Es la unica explicacion logica que le encuentro.

Gracias por adelantado.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida