Obtener el nombre del método actual en C#
-
Obtenga el nombre del método actual con
MethodBase.GetCurrentMethod()
enC#
-
Obtenga el nombre del método actual con
Reflection
enC#
-
Obtenga el nombre del método actual con la clase
StackTrace
enC#
-
Obtenga el nombre del método actual con el operador
nameof
enC#
En este artículo, aprenderemos cómo utilizar C# para obtener el nombre del método actual que se está ejecutando. En C#, hay más de una forma de obtener el nombre del método, que se está ejecutando actualmente.
Los siguientes procedimientos, que funcionan de manera similar, se describen, analizan y llevan a cabo a continuación.
Obtenga el nombre del método actual con MethodBase.GetCurrentMethod()
en C#
Es necesario utilizar un objeto MethodBase
para representar el método actual.
Es posible utilizar GetCurrentMethod()
desde dentro de un método en ejecución y obtener información sobre el método actual. Puede usar la función MethodBase.GetCurrentMethod()
para obtener un objeto MethodBase
que refleje el método que se está ejecutando actualmente.
En primer lugar, importa las bibliotecas para tener acceso a las funciones que luego se utilizan en el código.
using System;
using System.Diagnostics;
using System.Reflection;
Luego, dentro del método Principal
, inicializa una variable de tipo cadena que usará la función GetCurrentMethod()
para verificar el nombre del método actual. Y luego, generará el nombre de la función en la consola.
string getName = MethodBase.GetCurrentMethod().Name;
Console.WriteLine("Current method is " + getName);
Código fuente:
using System;
using System.Diagnostics;
using System.Reflection;
class CurrentMethodName {
public static void Main() {
string getName = MethodBase.GetCurrentMethod().Name;
Console.WriteLine("Current method is " + getName);
}
}
Producción :
Current method is Main
MethodInfo
proporcionado por GetCurrentMethod
se deriva de la definición de tipo genérico si el método que se está ejecutando actualmente está definido en un tipo genérico (MethodBase.ContainsGenericParameters
devuelve true
). Por lo tanto, no representa el tipo de parámetros pasados al método cuando se llamó.
GetCurrentMethod
devuelve la descripción del método genérico si el método que se está ejecutando ahora es genérico. MethodInfo
se recibe de la especificación del tipo genérico si el método genérico se especifica en un tipo genérico.
Obtenga el nombre del método actual con Reflection
en C#
Reflection
podría ser un método simple para comenzar. El espacio de nombres reflection
proporciona la clase MethodBase
, exponiendo GetCurrentMethod
para obtener la información del método.
System.Reflection.MethodBase.GetCurrentMethod().Name;
Aquí está el código fuente completo del método Reflection
.
Código fuente:
using System;
class CurrentMethodName {
private static void Main(string[] args) {
var getName = System.Reflection.MethodBase.GetCurrentMethod().Name;
Console.WriteLine("Current method is " + getName);
}
}
Producción :
Current method is Main
Obtenga el nombre del método actual con la clase StackTrace
en C#
Otra opción para obtener el nombre del método es usar el método StackTrace
y el marco de pila para obtener la información del método. Es posible obtener el nombre del método a través de la propiedad GetMethod()
del marco devuelto por la función StackTrace
GetFrame()
.
En primer lugar, importe las bibliotecas para acceder a la clase StackTrace
dentro del código.
using System;
using System.Diagnostics;
Establezca un objeto StackTrace
en una variable llamada stackTrace
, y luego use ese objeto en la función Main()
. Cree una variable getFrame
que obtendrá el marco mediante la función GetFrame
a través de StackTrace
.
Haz una variable llamada getName
, y asígnale la responsabilidad de recuperar el nombre del método activo usando el atributo Name
de la clase GetMethod
.
var stackTrace = new StackTrace();
var getFrame = stackTrace.GetFrame(0);
var getName = getFrame.GetMethod().Name;
Código fuente:
using System;
using System.Diagnostics;
class CurrentMethodName {
private static void Main(string[] args) {
var stackTrace = new StackTrace();
var getFrame = stackTrace.GetFrame(0);
var getName = getFrame.GetMethod().Name;
Console.WriteLine("Current method is " + getName);
}
}
Producción :
Current method is Main
Obtenga el nombre del método actual con el operador nameof
en C#
Cuando se usa la palabra clave nameof
en una expresión, la constante de cadena se establece en el nombre de una variable, tipo o miembro. La expresión nameof
no tendrá ningún efecto en el tiempo de ejecución, ya que solo se evalúa en el momento de la compilación.
Puede hacer que el código para verificar argumentos sea más fácil de mantener usando una expresión llamada nameof
.
Este enfoque se basa en la palabra clave integrada que no utiliza lo siguiente.
- declaración
using
que adjunta espacios de nombresreflection
, no es necesario adjuntarusing System.Diagnostics;
yusando System.Reflection;
- Clases adicionales que reflejan el código existente.
Código fuente:
using System;
class CurrentMethodName {
private static void Unique() {
string name = nameof(Unique);
Console.WriteLine("Current method is " + name);
}
public static void Main(string[] args) {
Unique();
}
}
Producción :
Current method is Unique
nameof
está disponible en C# versión 6 y posteriores.I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn