semelhante a forma como é feita no python a invocação de um metodo com getattr(classe, "metodo"), seria possivel a mesma abordagem no 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#
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!