1
resposta

Invocar método com getattr c#

semelhante a forma como é feita no python a invocação de um metodo com getattr(classe, "metodo"), seria possivel a mesma abordagem no c#

1 resposta

Olá, Antonio

Sim, é possível fazer algo semelhante ao getattr do Python no C#. No C#, você pode usar a reflexão para invocar um método por nome. Aqui está um exemplo de como você pode fazer isso:

using System.Reflection;

public class MinhaClasse
{
    public void MeuMetodo()
    {
        // código do método
    }
}

public class Programa
{
    public static void Main()
    {
        MinhaClasse minhaClasse = new MinhaClasse();
        MethodInfo metodo = minhaClasse.GetType().GetMethod("MeuMetodo");
        metodo.Invoke(minhaClasse, null);
    }
}

Neste exemplo, a classe MinhaClasse tem um método chamado MeuMetodo. No método Main, criamos uma instância de MinhaClasse, obtemos o MethodInfo para o método MeuMetodo e, em seguida, invocamos esse método.

Lembre-se de que a reflexão pode ser mais lenta do que a invocação direta de métodos e pode ter implicações de segurança, pois permite que você acesse métodos privados e protegidos, além dos públicos. Portanto, use com cuidado.

Espero ter ajudado e bons estudos!