0

C# 6 – L’opérateur nameof

Tout d’abord, meilleurs voeux pour cette année 2016. Commençons la nouvelle année avec une présentation du nouvell opérateur nameof pour C#.

C# 6 introduit un nouvel opérateur : nameof. Cet opérateur permet de renvoyer le nom d’un symbole sous forme de chaîne de caractères.

Par exemple :

Console.WriteLine(nameof(Console.Write));

A pour résultats l’affichage suivant :

Write

Ce nouvel opérateur est très utile pour éviter d’avoir des chaînes de caractères en dur dans le code.

Prenons l’exemple suivant :

private string _firstname;
 
public string Firstname
{
get { return _firstname; }
set { _firstname = value; OnPropertyChanged("Firstname"); }
}

Avec ce code, nous ne sommes pas à l’abri d’une faute de frappe lors de la saisie du symbole sous forme de chaîne de caractère et donc non détectée par la compilateur. L’opérateur nameof permet de d’éviter ce genre de soucis.

Voici le même exemple avec l’opérateur nameof :

private string _firstname;
  
public string Firstname
{
get { return _firstname; }
set { _firstname = value; OnPropertyChanged(nameof(this.Firstname)); }
}

Autre avantage, avec l’utilisation de nameof, le symbole passé en paramètre est pris compte par les outils de refactoring. Pratique lorsqu’on renomme une variable car on n’a vite fait d’oublier de modifier les chaînes de caractères correspondantes. Avec nameof plus besoin de s’en préoccuper.

Le symbole passé en paramètre de nameof doit exister, sinon le compilateur lèvera une erreur. Attention toutefois, il existe des éléments non autorisés et qui génèrent des erreurs : les types prédéfinis (par exemple, int ou void), les types Nullable (Point?), les types tableau, les types génériques indépendants (Dictionary<,>)…

Ainsi il est impossible de faire par exemple :

nameof(List<T>);

Voilà, une nouveauté plutôt sympa, pratique et rapide à mettre en œuvre.

Rock’n’Roll

gbrout

Architecte, formateur MCT et expert sur la gamme Visual Studio ALM qu'il met en œuvre sur l'ensemble des projets. Il travaille pour la société Itelios, spécialisée dans les technologies Microsoft et le commerce connecté. Il accompagne quotidiennement de nombreuses équipes et projets dans différents domaines et technologies : Windows 8, Windows Phone, ASP.NET MVC, Dynamics CRM... Passionné par le développement, ses domaines de prédilections sont avant tout l'expertise technique, l'industrialisation des développements avec la gamme Visual Studio ALM, l'analyse des performances, les tests et tout ce qui a trait à la qualité. Son expertise sur les  technologies Microsoft sa passion pour les nouvelles technologies et les développements novateurs l'a conduit à l'écriture d'un livre accessible et opérationnel sur le développement pour Windows 8 à l'aide d'HTML5 et JavaScript. Il anime également des conférences et sessions techniques telles que des live meeting en ligne ou lors d’événements comme les Techdays.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *