#VS2015 – C# 6, nameOf para obtener el nombre de una variable, operacion o tipo

Hola!

Hace un tiempo escribe sobre lo interesante que es poder utilizar String Interpolation en lugar de String.Format() cuando trabajamos con string. Otra de las novedades interesantes de C# 6.0 es el operador nameof. El mismo nos permite obtener de forma rápida el nombre de una variable u operación. En escenarios de trazas, de proceso de errores, o de generación dinámica de código es realmente útil.

Veamos un ejemplo para entenderlo mejor. Partimos sobre el siguiente código que define una clase custom con un par propiedades y una operación.

Luego en el proceso de la Console, vemos como se obtienen los nombres de las variables, de las propiedades de la variable y además de operaciones. El output de la consola es el siguiente

References

– El Bruno, String Interpolation https://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-o-como-arruinarle-el-dia-a-tu-equipo/

– MSDN nameof, https://msdn.microsoft.com/en-us/library/dn986596.aspx

Saludos @ Madrid

/El Bruno

3 thoughts on “#VS2015 – C# 6, nameOf para obtener el nombre de una variable, operacion o tipo

  1. a ver si me ha quedado claro.
    Tengo una variable p, y le aplico nameof y me devuelve p??
    es como si te digo Bruno, como te llamas y me respondes Bruno.
    O pones un ejemplo mejor y realista o es una inutilidad como una casa

    Like

    1. Pues el caso más concreto en el que se puede usar es con INotifyPropertyChanged. Esto es mucho más simple el codigo que hacemos actualmente

      int p {
      get { return this.p; }
      set { this.p = value; PropertyChanged(this, new PropertyChangedEventArgs(nameof(this.p)); } // nameof(p) works too
      }

      y aquí (https://msdn.microsoft.com/en-us/library/dn986596.aspx) puedes ver ejemplos para Logging, XAML dependency property, Attributes. Piensa que si estas refactorizando código todo el tiempo, esto es fundamental para alejarte de los string hard codedados.

      Saludos

      Like

Leave a Reply to pasabaporaqui Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.