2010-03-28 9 views
24

Mi método se parece a:cómo obtener el nombre de la clase cuando paso un genérico en mi método?

public string DoObjectProperties<T>(T obj, string text) 
{ 

} 

Ahora desde dentro del método, que necesito para obtener el valor de cadena del nombre de la clase que me pase en el parámetro 'obj' del método.

Así que si paso el objeto Usuario, necesito el texto 'usuario'.

Para obtener las propiedades que estoy utilizando: typeof(T).GetProperties()

¿Cómo puedo obtener el nombre de clases?

Respuesta

47

Sólo tiene que utilizar .Name así:

typeof(T).Name 

Esto da, por ejemplo, "Cadena", también hay .FullName lo que daría "System.String"

1
typeof(T).Name //would work 

Pero depender de ello y tomar decisiones basadas en él probablemente no sea una buena idea.

La regla importante aquí es que probablemente deba usar FullName siempre que sea posible.

Por ejemplo, en sentencias de mayúsculas y minúsculas o en bloques else o en las teclas del diccionario.

El nombre de la clase no es lo ideal para depender ya que potencialmente tiene el mismo nombre de clase en diferentes espacios de nombres. NamespaceA.String y NamespaceB.String es perfectamente posible ...

Cuestiones relacionadas