Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quel est le role de l'instruction using dans une f

Quel est le role de l'instruction using dans une fonction

    15 janvier 2023 à 17:33:43

    bonjour a tous, 
    Je suis débutant en c#, et j'aimerai savoir quel est le rôle de USING dans une fonction, je sais qu'elle remplace include et Import dans d'autres langages, mais je n'ai pas compris son rôle dans une fonction comme par exemple :

    string manyLines = @"This is line one
    This is line two
    Here is line three
    The penultimate line is line four
    This is the final, fifth line.";
    
    using (var reader = new StringReader(manyLines))
    {
        string? item;
        do
        {
            item = reader.ReadLine();
            Console.WriteLine(item);
        } while (item != null);
    }
    string? item;

    et si j'ai bien compris le ? après le type d'une variable veut dire qu'elle peut être nulle c'est ça?

    Merci d'avance pour votre aide.



    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2023 à 9:40:47

      >qu'elle remplace include et Import dans d'autres langages

      Vous confondez la directive "using" qui a pour équivalent "package" ou "import" dans d'autres langages, avec l'instruction "using" qui correspond plus à "lock" dans d'autres langages.

      L'instruction "using" permet d'appeler automatiquement la méthode "Dispose" d'un objet quand il sort du "scope" du code (fin du bloc d'instructions).

      >et si j'ai bien compris le ? après le type d'une variable veut dire qu'elle peut être nulle c'est ça?

      Oui, mais je vois pas trop l'intérêt sur une variable de type "string" qui est déjà un ReferenceType.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        19 janvier 2023 à 12:09:16

        Merci pour vos réponses, ça m'a beaucoup aidé.
        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2023 à 23:30:55

          Dans le code que vous avez fourni, la déclaration "using" permet de créer une zone de bloc "using" qui gère automatiquement la mise en place et le nettoyage des ressources. Lorsque vous utilisez une instruction "using", vous pouvez définir une variable qui implémente l'interface IDisposable, comme "var reader = new StringReader (manyLines)" dans l'exemple ci-dessus. La méthode Dispose() de cette interface sera automatiquement appelée à la fin de la zone de bloc "using", libérant ainsi les ressources utilisées par la variable.

          En utilisant cette fonctionnalité, vous n'avez pas besoin de vous soucier de la libération manuelle des ressources, ce qui peut réduire les erreurs de programmation et améliorer la qualité du code.

          En ce qui concerne la variable "item", la présence du "?" après le type de données (string) indique qu'elle peut être nullable, c'est-à-dire qu'elle peut prendre la valeur null. C'est un type nullable qui permet de vérifier si la variable a une valeur ou non. Il est également possible de déclarer une variable nullable en utilisant la syntaxe "Nullable<T>" où T est le type de données (par exemple "int?" ou "Nullable<int>").

          Voici un exemple pour vous montrer comment utiliser les variables nullables :

          int? age = null;
          Console.WriteLine(age.HasValue); // affiche "False" car age est null
          
          age = 25;
          Console.WriteLine(age.HasValue); // affiche "True" car age a une valeur
          Console.WriteLine(age.Value); // affiche "25"
          
          age = null;
          Console.WriteLine(age.Value); // génère une exception InvalidOperationException car age est null
          

          Voici un exemple pour vous montrer comment utiliser les variables nullables :

          int? age = null; Console.WriteLine(age.HasValue); // affiche "False" car age est null age = 25; Console.WriteLine(age.HasValue); // affiche "True" car age a une valeur Console.WriteLine(age.Value); // affiche "25" age = null; Console.WriteLine(age.Value); // génère une exception InvalidOperationException car age est null

          Dans cet exemple, nous déclarons une variable nullable "age" de type "int?" qui est initialisée à null. En utilisant la propriété "HasValue", nous pouvons vérifier si la variable a une valeur ou non. Si "HasValue" retourne "True", nous pouvons utiliser la propriété "Value" pour obtenir la valeur de la variable. Si "HasValue" retourne "False", cela signifie que la variable est null et utiliser la propriété "Value" générera une exception InvalidOperationException.



          • Partager sur Facebook
          • Partager sur Twitter

          Quel est le role de l'instruction using dans une f

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown