Enviar a un amigo Imprimir Texto sin justificar Texto justificado Letra pequeña Letra mediana Letra grande
buscar 
novedades
Recibe las ultimas noticias y los mejores articulos en tu email
Secciones
 • .NET Framework
 • ADO .NET
 • Ajax
 • Asp .NET
 • Biztalk
 • C#
 • Commerce Server
 • Exchange
 • IIS
 • Metodologías
 • J#
 • Móviles
 • Office
 • Reporting Services
 • Seguridad
 • Servicios Web
 • Sharepoint
 • Silverlight
 • SQL Server
 • Visual Basic .NET
 • Visual C++ .NET
 • Visual Studio
 • WCF
 • Windows
 • Workflow Foundation
 • WPF
 • XAML
 • XML
 • Dynamics
 • Libros
 • Noticias
 • Articulos
 • Webcast
 • Tutoriales
 • Eventos
 • Cursos
 • Ofertas Empleo
 • RSS
Contacto
¿Quieres saber quien es el creador de Clikear?
Weblogfree.com, crea tu propio blog facilmente, gratis y en español
Dotnetsolidario, ayuda al tercer mundo a traves de las tecnologias de la informacion
 
 

Tutorial C#

Constructor por defecto

 

Todo tipo de datos ha de disponer de al menos un constructor. Cuando se define un tipo sin especificar ninguno el compilador considera que implícitamente se ha definido uno  sin cuerpo ni parámetros de la siguiente forma:

 

            public <nombreClase>(): base()

            {}

 

En el caso de que el tipo sea una clase abstracta, entonces el constructor por defecto introducido es el que se muestra a continuación, ya que el anterior no sería válido porque permitiría crear objetos de la clase a la que pertenece:

 

            protected <nombreClase>(): base()

            {}

           

En el momento en se defina explícitamente algún constructor el compilador dejará de introducir implícitamente el anterior. Hay que tener especial cuidado con la llamada que este constructor por defecto realiza en su inicializador, pues pueden producirse errores como el del siguiente ejemplo:

 

            class A

            {

                        public A(int x)

                        {}

            }

 

            class B:A

            {

                        public static void Main()

                        {

                                   B b = new B();  // Error: No hay constructor base

                        }

            }

 

En este caso, la creación del objeto de clase B en Main() no es posible debido a que el constructor que por defecto el compilador crea para la clase B llama al constructor sin parámetros de su clase base A, pero A carece de dicho constructor porque no se le ha definido explícitamente ninguno con esas características pero se le ha definido otro que ha hecho que el compilador no le defina implícitamente el primero.

 

Otro error que podría darse consistiría en que aunque el tipo padre tuviese un constructor sin parámetros, éste fuese privado y por tanto inaccesible para el tipo hijo.

 

También es importante señalar que aún en el caso de que definamos nuestras propios constructores, si no especificamos un inicializador el compilador introducirá por nosotros uno de la forma :base() Por tanto, en estos casos también hay que asegurarse de que el tipo donde se haya definido el constructor herede de otro que tenga un constructor sin parámetros no privado.

 

 

Principal
Recomendado