.NET, Architecture, ALM, Cloud

Publicité

Nameof Expressions

Un nouveau mot clef est apparu avec C# 6.0 : "nameof".
 

Késako ? "nameof" va vous permettre de récupérer sous forme de string n'importe quel élément (paramètre, nom de classe, nom de méthode...).
 

Premier exemple pour indiquer qu'un paramètre requis d'une méthode est manquant :

 

public void TestMethod(string requiredParam)

{
   if (requiredParam == null
)    
     
throw new ArgumentNullException(nameof(requiredParam));
}


 

L'intérêt ? Avant C# 6.0 nous aurions été obligé d'écrire la ligne de code suivante :

throw new ArgumentNullException("requiredParam");

 

Le principal avantage de "nameof" est que quand vous allez faire de refactoring sur votre paramètre pour le renommer, celui-ci sera aussi modifié pour la gestion de votre exception contrairement au deuxième exemple.
 

Comme les montre les exemples ci-dessous, "nameof" peut être utilisé dans différents cas de figure :

 

namespace UnitTestProject
{

  [TestClass]
  public class UnitTest1
  {
    [TestMethod]
   
public void TestMethod()

    {   

      Assert.AreEqual<string>("TestMethod", nameof(TestMethod));   
      Assert
.AreEqual<string>("TestClassAttribute",
     
  nameof(TestClassAttribute));   

      Assert.AreEqual("TestMethod",
       
nameof(UnitTestProject.UnitTest1.TestMethod));

     Assert.AreEqual<string>("UnitTestProject",
      
nameof(UnitTestProject));

    }

 }

}

public void TestMethod(string requiredParam)

{

if (requiredParam == null)

throw new ArgumentNullException(nameof(requiredParam));

}

 

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article