Normalmente puedo llamar a esto. GetType(), pero no puedo acceder a esto en un método estático. ¿Cómo podemos verificarlo?¿Cómo obtener el nombre de la clase actual en un método estático?
Respuesta
new StackFrame().GetMethod().DeclaringType
o
MethodBase.GetCurrentMethod().DeclaringType
o
new StackTrace(true).GetFrame(<frame index>).GetMethod() //e.g. <frame index> = 0
No sé si es la mejor manera de hacerlo, pero por lo general puse un constructor private
(si mi clase es una static/util class no instanciable) y que llama al GetType()
en una instancia.
private MyStaticClass
{
// ...
}
public static Type MyStaticMethiod()
{
return new MyStaticClass().GetType();
}
Uso typeof:
string className = typeof(MyClass).Name;
ésta no funcionará si el código se pega a otra clase –
@lo Sí, pero la clase de cambio de nombre mantiene la instrucción typeof correcta. – brgerner
@lo Si copia la clase por ReSharper * Copy Type *, la refactorización de la instrucción typeof también debería seguir siendo correcta. – brgerner
- 1. Cómo obtener el nombre de clase del método hijo estático
- 2. ¿Cómo obtener el nombre de la (sub) clase de un método estático en Python?
- 3. ¿Obtener el nombre de la clase actual?
- 4. Obteniendo el tipo actual en un método genérico estático?
- 5. Obtener el nombre del método actual
- 6. ¿Cómo obtener el nombre del método actual en Delphi 7?
- 7. Usando la clase actual en la declaración de método estático de Java
- 8. ¿Cómo obtengo el archivo actual, la clase actual y el método actual con Python?
- 9. ¿Cómo obtener el nombre o la firma del método actual en un NSString?
- 10. Redefiniendo método estático en la clase hija
- 11. clase derivada Llamando al método estático de la clase base en su propio método estático
- 12. Obtener el nombre del método actual que se está ejecutando
- 13. En Boost.Test, ¿cómo obtener el nombre de la prueba actual?
- 14. cómo obtener el nombre de la clase cuando paso un genérico en mi método?
- 15. ¿Es posible obtener el nombre de la clase actual de un objeto desinstalado en PHP?
- 16. C#: ¿Cómo puedo llamar a un método estático de una clase base desde un método estático de una clase derivada?
- 17. invocar método no estático por nombre
- 18. ¿Puedo llamar económicamente a un método de Java para obtener el nombre del método actual?
- 19. Obteniendo el nombre de clase actual incluyendo el paquete
- 20. Obtener el nombre de la clase Ruby sin el método de clase
- 21. ¿Es posible anular un método estático en la clase derivada?
- 22. Obtener acceso desde un método estático
- 23. Java sin nombre método estático
- 24. ¿Cómo obtener el nombre de la función actual?
- 25. Método estático que devuelve la clase interna
- 26. obtener el nombre de la función actual en javascript
- 27. Compruebe si la clase tiene el método estático
- 28. Obteniendo el MethodInfo del método estático de una clase estática
- 29. Anular un método estático
- 30. ¿Cómo obtener el objeto concreto de un método estático a través de la API reflejada?
Look: http://stackoverflow.com/questions/552629/c-sharp-print-the-class-name-from-within-a- función estática – k06a