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

Fermé
Mourad2009B Messages postés 100 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 7 juillet 2023 - 15 janv. 2023 à 17:33
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 19 janv. 2023 à 12:16

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.


Windows / Chrome 108.0.0.0

A voir également:

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
15 janv. 2023 à 18:16
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
15 janv. 2023 à 19:30

Bonsoir

puisque le code que tu postes est celui de la doc, j'imagine que tu ne l'as pas comprise.

Voila la même en français https://learn.microsoft.com/fr-fr/dotnet/csharp/language-reference/keywords/using-statement

Voir les commentaires 

using (var reader = new StringReader(manyLines))// cette ligne déclare et iniatialise la variable redader, using borne la portée de cette variable
{
    string? item;
    do
    {
        item = reader.ReadLine();
        Console.WriteLine(item);
    } while (item != null);
}// après cette accolade, la variable reader n'existe plus, elle est "disposée", ça veut dire que la méthode Dispose() est déclenchée et que cette méthode doit libérer toutes les ressources utilisées par reader

La variable item non plus n.est plus utilisable après l'accolade, mais elle n'est pas disposée.

Pour ta seconde question, oui ajouter un ? derrière un type non nullable (comme, char, int ou double)  veut dire que la variable pourra être nulle, alors que de base non.

Cependant, en principe string est nullable. Mais dans cette doc, contrairement à souvent, on ne peut pas choisir quel .Net est concerné. Il y a peut-être une subtilité, en fonction du .Net 


0
Mourad2009B Messages postés 100 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 7 juillet 2023
19 janv. 2023 à 12:08

Merci pour vos réponses, ça m'a beaucoup aidé.

0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
19 janv. 2023 à 12:16

De rien


0