que metodos generar funciones español ejemplos como colaboracion clases c#

c# - metodos - ¿Hay alguna función que devuelva el nombre de la clase/método actual?



metodos y funciones en c# (6)

¡Sí! El GetCurrentMethod estático de la clase MethodBase inspeccionará el código de llamada para ver si es un constructor o un método normal, y devuelve un MethodInfo o un ConstructorInfo.

Este espacio de nombres es parte de la API de reflexión, por lo que básicamente puede descubrir todo lo que el tiempo de ejecución puede ver al usarlo.

Aquí encontrarás una descripción exhaustiva de la API:

http://msdn.microsoft.com/en-us/library/system.reflection.aspx

Si no tienes ganas de mirar toda la biblioteca aquí, hay un ejemplo que preparé:

namespace Canvas { class Program { static void Main(string[] args) { Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod()); DiscreteMathOperations viola = new DiscreteMathOperations(); int resultOfSummation = 0; resultOfSummation = viola.ConsecutiveIntegerSummation(1, 100); Console.WriteLine(resultOfSummation); } } public class DiscreteMathOperations { public int ConsecutiveIntegerSummation(int startingNumber, int endingNumber) { Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod()); int result = 0; result = (startingNumber * (endingNumber + 1)) / 2; return result; } } }

La salida de este código será:

Void Main<System.String[]> // Call to GetCurrentMethod() from Main. Int32 ConsecutiveIntegerSummation<Int32, Int32> //Call from summation method. 50 // Result of summation.

Espero que te haya ayudado!

JAL

Esta pregunta ya tiene una respuesta aquí:

En C #, ¿hay alguna función que devuelva el nombre de clase / método actual?


Cambié el ejemplo anterior un poco en este código de ejemplo de trabajo:

public class MethodLogger : IDisposable { public MethodLogger(MethodBase methodBase) { m_methodName = methodBase.DeclaringType.Name + "." + methodBase.Name; Console.WriteLine("{0} enter", m_methodName); } public void Dispose() { Console.WriteLine("{0} leave", m_methodName); } private string m_methodName; } class Program { void FooBar() { using (new MethodLogger(MethodBase.GetCurrentMethod())) { // Write your stuff here } } }

Salida:

Program.FooBar enter Program.FooBar leave


Nombre de clase actual:

this.GetType().Name;

Nombre del método actual:

using System.Reflection; // ... MethodBase.GetCurrentMethod().Name;

Como está utilizando esto para fines de registro, también puede estar interesado en obtener el seguimiento de la pila actual .


Puede obtener el nombre de clase actual, pero no puedo pensar de todos modos para obtener el nombre del método actual. Sin embargo, se pueden obtener los nombres de los métodos para la corriente.

string className = this.GetType().FullName; System.Reflection.MethodInfo[] methods = this.GetType().GetMethods(); foreach (var method in methods) Console.WriteLine(method.Name);



System.Reflection.MethodBase.GetCurrentMethod().DeclaringType