FAQ C++/CLI et VC++.Net
FAQ C++/CLI et VC++.NetConsultez toutes les FAQ
Nombre d'auteurs : 29, nombre de questions : 248, création le 22 février 2013
Il existe plusieurs façons d'initialiser des variables statiques dans une classe. On peut tout d'abord le faire à l'initialisation :
public
ref class
MyStatic
{
public
:
static
int
^
val1 =
2
;
}
;
C++/CLI permet d'utiliser également un constructeur statique, alors que le C++ ne l'autorise pas. C'est dans ce constructeur qu'on va s'occuper d'initialiser les variables statiques.
Ce constructeur devra être déclaré en private, et ne pourra pas posséder de paramètres. On le précédera par le mot clé static.
public
ref class
MyStatic
{
public
:
static
int
^
val1;
private
:
static
MyStatic()
{
val1 =
3
;
}
}
;
NB : Le constructeur statique est appelé par défaut par le CLR.
Afin d'avoir une variable accessible de n'importe quel endroit de son application il faut la déclarer static.
Cette pratique est en général à déconseiller aux débutants, mais peut s'avérer indispensable dans certaines utilisations.
En général, on créera une classe qui regroupe toutes les variables accessibles de n'importe quel endroit. Il peut s'agir d'une classe de configuration par exemple.
public
ref class
MyConfiguration
{
public
:
static
property String ^
StringConnection;
}
;
Exemple d'appel :
MyConfiguration::
StringConnection =
"ABC"
;
Console::
WriteLine(MyConfiguration::
StringConnection);
Une méthode globale "façon C" ne respecte pas la norme CLS. On peut construire un équivalent en faisant une classe statique, non dérivable (grâce aux mots clés abstract et sealed):
public
ref class
ClassMethodeGlobale abstract sealed
{
public
:
static
void
faitQuelqueChose() {}
;
}
;