Método Type.GetConstructors() en C# con ejemplos

El método Type.GetConstructors() se usa para obtener los constructores del objeto Type. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:
 

Método Type.GetConstructors()

Este método se usa para devolver todos los constructores públicos definidos para el Tipo actual.
Sintaxis: 

public System.Reflection.ConstructorInfo[] GetConstructors ();

Devoluciones: este método devuelve objetos de array ConstructorInfo que representan todos los constructores de instancias públicas definidos para el tipo actual, pero no incluye el inicializador de tipo (constructor estático).
Los siguientes programas ilustran el uso del método Type.GetConstructors() :
Ejemplo 1:

csharp

// C# program to demonstrate the
// Type.GetConstructors() Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object
        object obj = new Object();
 
        // Getting the type of object
        // using GetType() method
        Type type = obj.GetType();
 
        // Getting constructors of the current Type.
        // using GetArrayRank() Method
        ConstructorInfo[] info = type.GetConstructors();
 
        // Display all the public instance constructors
        Console.WriteLine("All constructors are shown below");
 
        for (int i = 0; i < info.Length; i++)
            Console.WriteLine(info[i]);
    }
}
Producción: 

All constructors are shown below
Void .ctor()

 

Ejemplo 2:

csharp

// C# program to demonstrate the
// Type.GetConstructors() Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing Type object
        Type type = typeof(string);
 
        // Getting constructors of the current Type.
        // using GetConstructors() Method
        ConstructorInfo[] info = type.GetConstructors();
 
        // Display all the public instance constructors
        Console.WriteLine("All constructors are shown below");
 
        for (int i = 0; i < info.Length; i++)
            Console.WriteLine(info[i]);
    }
}
Producción: 

All constructors are shown below
Void .ctor(Char[])
Void .ctor(Char[], Int32, Int32)
Void .ctor(Char*)
Void .ctor(Char*, Int32, Int32)
Void .ctor(SByte*)
Void .ctor(SByte*, Int32, Int32)
Void .ctor(SByte*, Int32, Int32, Encoding)
Void .ctor(Char, Int32)
Void .ctor(ReadOnlySpan`1)

 

Método Type.GetConstructors(BindingFlags)

Este método se usa para devolver constructores definidos para el Tipo actual, usando los BindingFlags especificados cuando se reemplazan en una clase derivada,
Sintaxis:
 

Resumen público System.Reflection.ConstructorInfo[] GetConstructors (System.Reflection.BindingFlags bindingAttr); 
 

Aquí, se necesita una máscara de bits compuesta por uno o más BindingFlags que especifican en qué punto se lleva a cabo la atención. o Cero, para devolver nulo.
A continuación se muestran algunas banderas de filtro BindingFlags que se pueden usar para definir qué constructores incluir en la búsqueda:
 

  • Debe especificar BindingFlags.Instance o BindingFlags.Static para obtener una devolución.
  • Especifique BindingFlags.Public para incluir constructores públicos en la búsqueda.
  • Especifique BindingFlags.NonPublic para incluir constructores no públicos (es decir, constructores privados, internos y protegidos) en la búsqueda. No se devuelven los constructores de las clases base.

Valor devuelto: este método devuelve una array de objetos ConstructorInfo que representan todos los constructores definidos para el tipo actual que coinciden con las restricciones de enlace especificadas, incluido el inicializador de tipo, si está definido. 
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:

csharp

// C# program to demonstrate the
// Type.GetConstructors(BindingFlags)
// Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Declaring and initializing Type object
        Type type = typeof(string);
 
        // Declaring and initializing BindingFlags
        // it is used to specify how the search
        // is conducted
        BindingFlags bf = BindingFlags.Public
                          | BindingFlags.Static
                          | BindingFlags.NonPublic
                          | BindingFlags.Instance;
 
        // Getting constructors of the current Type.
        // using GetConstructors() Method
        ConstructorInfo[] info = type.GetConstructors(bf);
 
        // Display all constructors
        Console.WriteLine("All constructors are shown below");
 
        for (int i = 0; i < info.Length; i++)
            Console.WriteLine(info[i]);
    }
}
Producción: 

All constructors are shown below
Void .ctor(Char[])
Void .ctor(Char[], Int32, Int32)
Void .ctor(Char*)
Void .ctor(Char*, Int32, Int32)
Void .ctor(SByte*)
Void .ctor(SByte*, Int32, Int32)
Void .ctor(SByte*, Int32, Int32, Encoding)
Void .ctor(Char, Int32)
Void .ctor(ReadOnlySpan`1)

 

Ejemplo 2:

csharp

// C# program to demonstrate the
// Type.GetConstructors(BindingFlags)
// Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Creating and initializing object
        object obj = new Object();
 
        // Declaring and initializing Type object
        Type type = obj.GetType();
 
        // Declaring and initializing BindingFlags
        // it is used to specify how the search is conducted
        BindingFlags bf = BindingFlags.Public
                          | BindingFlags.Static
                          | BindingFlags.NonPublic
                          | BindingFlags.Instance;
 
        // Getting constructors of the current Type.
        // using GetConstructors() Method
        ConstructorInfo[] info = type.GetConstructors(bf);
 
        // Display all constructors
        Console.WriteLine("All constructors are shown below");
 
        for (int i = 0; i < info.Length; i++)
            Console.WriteLine(info[i]);
    }
}
Producción: 

All constructors are shown below
Void .ctor()

 

Referencia:

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *