Fermer

juillet 8, 2019

Fonctions locales statiques et utilisation des déclarations


La prochaine version majeure du langage C # (C # 8) propose de nouvelles fonctionnalités intéressantes. Examinons deux nouvelles fonctionnalités de C # 8, les fonctions locales statiques et la déclaration using.

Dans cet article, nous allons explorer les nouvelles fonctions locales statiques et la déclaration using. Si vous voulez essayer ces fonctionnalités, vous devez installer .NET Core 3 et configurer votre projet pour qu'il utilise le C # 8. J'ai expliqué comment utiliser celles de mon précédent post .

Fonctions locales

Les fonctions locales vous permettent de déclarer des méthodes dans le contexte d'une autre méthode. Cela permet aux lecteurs de la classe de savoir plus facilement que la méthode locale est appelée uniquement à partir du contexte dans lequel elle est déclarée. Cela vous donne un meilleur endroit pour écrire des méthodes appelées à partir d'un seul emplacement et pour écrire un code qui ressemble à ceci:

 chaîne publique MethodWithLocalFunction ()
{
  string firstname = "Hiccuo";
  string lastname = "Mauritius";
  renvoyer LocalFunction ();
  string LocalFunction () => prénom + "-" + nom;
} 

Les fonctions locales capturent automatiquement le contexte de la portée englobante pour que toutes les variables de la méthode contenant soient disponibles à l'intérieur. Cette fonctionnalité a été ajoutée en C # 7.0 et, en C # 8, vous pouvez déclarer une fonction locale statique en ajoutant le modificateur static . En ajoutant cela, vous vous assurez que la fonction locale ne fait pas référence à des variables de la portée englobante. En ajoutant ceci à l'extrait de code précédent, vous passerez ainsi prénom et nom en tant que paramètres.

 public string MethodWithLocalFunction ()
{
  string first = "Hiccuo";
  string last = "Mauritius";
  return LocalFunction (premier, dernier);
  chaîne LocalFunction (chaîne prénom, chaîne nom) => prénom + "-" + nom;
} 

Utilisation de la déclaration

L'instruction utilisant en C # fournit une syntaxe pratique qui garantit l'utilisation correcte des objets IDisposable. C # 8 vous donne une alternative qui est en utilisant la déclaration . Une déclaration using est une déclaration de variable précédée du mot clé using . Lorsque la variable sort de la portée (c’est-à-dire que le bloc de code contenant est quitté), la méthode Dispose sera automatiquement appelée pour cet objet. L'exemple suivant lit un fichier et utilise la déclaration using.

 void ReadFile (string path)
{
  using FileStream fs = File.OpenRead (path); // en utilisant la déclaration
  octet [] b = nouvel octet [1024];
  UTF8Encoding temp = new UTF8Encoding (true);
  while (fs.Read (b, 0, b.Length)> 0)
  {
    Console.WriteLine (temp.GetString (b));
  }
  // fs est disposé ici
} 

Dans cet exemple, la variable fs est supprimée lorsque l'accolade de fermeture de la méthode est atteinte.

Conclusion

C # 8 présente des caractéristiques intéressantes et, dans cet article, I a écrit sur l’utilisation de la déclaration et de la fonction locale statique. La déclaration using permet de déclarer des variables précédées du à l'aide du mot clé . Le compilateur générera du code pour appeler Dispose () lorsque l'objet sort de la portée. Le mot clé static peut maintenant être ajouté à une déclaration de fonction locale, de sorte que toute variable de l'étendue englobante ne puisse pas être référencée à l'intérieur de la fonction locale. Ce sont des caractéristiques intéressantes à venir dans C # 8.





Source link