Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de using { } dans une fonction

2 réponses
Avatar
Gilles TOURREAU
Bonjour,

Je voudrais savoir si ce code est correct :

bool MaFonction()
{
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
return true;
}
....
return false;
}

Est ce que la méthode Dispose() de l'objet f sera appelé après le "return
true;" ou elle sera appelé plus tard par le GC ou dois-je écrire plustôt ce
code ci ?

bool MaFonction()
{
bool b;

b = false;
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
b = true;
}
....
return b;
}

--
Gilles TOURREAU
Responsable Informatique
gilles.tourreau@pos.fr

Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

2 réponses

Avatar
Patrice Manac'h
Bonjour,

la première syntaxe est correcte.

Cdt,

P. Manac'h
MCS France

"Gilles TOURREAU" a écrit dans le message de news:

Bonjour,

Je voudrais savoir si ce code est correct :

bool MaFonction()
{
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
return true;
}
....
return false;
}

Est ce que la méthode Dispose() de l'objet f sera appelé après le "return
true;" ou elle sera appelé plus tard par le GC ou dois-je écrire plustôt
ce code ci ?

bool MaFonction()
{
bool b;

b = false;
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
b = true;
}
....
return b;
}

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Bruno Jouhier
"Patrice Manac'h" a écrit dans le message de
news:
Bonjour,

la première syntaxe est correcte.



Non seulement la syntaxe est correcte mais le comportement sera le même que
dans le second cas. Même s'il y a un return au milieu du bloc, le Dispose()
sera exécuté au moment du return. Idem pour les instructions placées dans un
bloc finally.

Bruno


Cdt,

P. Manac'h
MCS France

"Gilles TOURREAU" a écrit dans le message de
news:
Bonjour,

Je voudrais savoir si ce code est correct :

bool MaFonction()
{
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
return true;
}
....
return false;
}

Est ce que la méthode Dispose() de l'objet f sera appelé après le "return
true;" ou elle sera appelé plus tard par le GC ou dois-je écrire plustôt
ce code ci ?

bool MaFonction()
{
bool b;

b = false;
....
using (MaForm f = new MaForm())
{
if (f.ShowDialog() == DialogResult.OK)
b = true;
}
....
return b;
}

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr