C# | Método Type.GetProperties()

El método Type.GetProperties() se utiliza para obtener las propiedades del tipo actual. Hay 2 métodos en la lista de sobrecarga de este método de la siguiente manera:

  • Método GetProperties()
  • Método GetProperties(BindingFlags)

Método GetProperties()

Este método se utiliza para devolver todas las propiedades públicas del Tipo actual.

Sintaxis: public System.Reflection.PropertyInfo[] GetProperties();

Valor de retorno: este método devuelve una array de objetos PropertyInfo que representan todas las propiedades públicas del tipo actual o una array vacía de tipo PropertyInfo si el tipo actual no tiene propiedades públicas.

Los siguientes programas ilustran el uso del método Type.GetProperties() :

Ejemplo 1:

// C# program to demonstrate the
// Type.GetProperties() Method
using System;
using System.Globalization;
using System.Reflection;
  
// Defining class Empty
public class Empty { }
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(string);
  
        // try-catch block for handling Exception
        try {
  
            // using GetProperties() Method
            PropertyInfo[] type = objType.GetProperties();
  
            // Display the Result
            Console.WriteLine("Properties of current type is: ");
            for (int i = 0; i < type.Length; i++)
                Console.WriteLine(" {0}", type[i]);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e)
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción:

Properties of current type is: 
 Int32 Length
 Char Chars [Int32]

Ejemplo 2:

// C# program to demonstrate the
// Type.GetProperties() Method
using System;
using System.Globalization;
using System.Reflection;
  
// Defining class Empty
public class Empty {}
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(System.Type);
  
        // try-catch block for handling Exception
        try {
  
            // using GetProperties() Method
            PropertyInfo[] type = objType.GetProperties();
  
            // Display the Result
            Console.WriteLine("Properties of current type is: ");
            for (int i = 0; i < 10; i++)
                Console.WriteLine(" {0}", type[i]);
        }
  
        // catch ArgumentNullException here
        catch (ArgumentNullException e) 
        {
            Console.Write("name is null.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción:

Properties of current type is: 
 System.Reflection.MemberTypes MemberType
 System.Type DeclaringType
 System.Reflection.MethodBase DeclaringMethod
 System.Type ReflectedType
 System.Runtime.InteropServices.StructLayoutAttribute StructLayoutAttribute
 System.Guid GUID
 System.Reflection.Binder DefaultBinder
 System.Reflection.Module Module
 System.Reflection.Assembly Assembly
 System.RuntimeTypeHandle TypeHandle

Método GetProperties(BindingFlags)

Este método se usa para buscar las propiedades del Tipo actual, usando las restricciones de enlace especificadas cuando se anula en una clase derivada.

Sintaxis: public abstract System.Reflection.PropertyInfo[] GetProperties (System.Reflection.BindingFlags bindingAttr);
Aquí, se necesita una máscara de bits compuesta por uno o más BindingFlags que especifican cómo se realiza la búsqueda o Zero, para devolver un valor nulo.

Valor devuelto: este método devuelve una array de objetos PropertyInfo que representan todas las propiedades del tipo actual que coinciden con las restricciones de enlace especificadas o una array vacía de tipo PropertyInfo, si el tipo actual no tiene propiedades o si ninguna de las propiedades coincide con el enlace. restricciones

Ejemplo 1:

// C# program to demonstrate the
// Type.GetProperties(BindingFlags)
// Method
using System;
using System.Globalization;
using System.Reflection;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Dog);
  
        // using GetProperties() Method
        PropertyInfo[] type = objType.GetProperties(BindingFlags.Instance | BindingFlags.Public);
  
        // Display the Result
        Console.WriteLine("Properties of current type is: ");
        for (int i = 0; i < type.Length; i++)
            Console.WriteLine(" {0}", type[i]);
    }
}
  
// Defining class Dog
public class Dog {
  
    private string color, breed, type;
  
    // Constructor
    public Dog(string color, string breed, string type)
    {
        this.color = color;
        this.breed = breed;
        this.type = type;
    }
  
    // Color Property
    public String Color
    {
        get { return color; }
    }
  
    // Breed Property
    public String Breed
    {
        get { return breed; }
    }
  
    // Type Property
    public String Type
    {
        get { return type; }
    }
  
    // BloodGroup Property
    private String BloodGroup
    {
        get { return "AB+"; }
    }
}
Producción:

Properties of current type is: 
 System.String Color
 System.String Breed
 System.String Type

Ejemplo 2:

// C# program to demonstrate the
// Type.GetProperties(BindingFlags)
// Method
using System;
using System.Globalization;
using System.Reflection;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing object of Type
        Type objType = typeof(Dog);
  
        // using GetProperties() Method
        PropertyInfo[] type = objType.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic);
  
        // Display the Result
        Console.WriteLine("Properties of current type is: ");
        for (int i = 0; i < type.Length; i++)
            Console.WriteLine(" {0}", type[i]);
    }
}
  
// Defining class Dog
public class Dog {
  
    private string color, breed, type, bp;
  
    // Constructor
    public Dog(string color, string breed,
                   string type, string bp)
    {
        this.color = color;
        this.breed = breed;
        this.type = type;
        this.bp = bp;
    }
  
    // Color Property
    public String Color
    {
        get { return color; }
    }
  
    // Breed Property
    public String Breed
    {
        get { return breed; }
    }
  
    // Type Property
    public String Type
    {
        get { return type; }
    }
  
    // BloodGroup Property
    protected String BloodGroup
    {
        get { return "AB+"; }
    }
  
    // BloodPressure Property
    protected String BloodPressure
    {
        get { return bp; }
    }
}
Producción:

Properties of current type is: 
 System.String BloodGroup
 System.String BloodPressure

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 *