Static (Visual Basic)

Spécifie qu’une ou plusieurs variables locales déclarées doivent continuer à exister et conserver leurs valeurs les plus récentes après l’arrêt de la procédure dans laquelle elles sont déclarées.

Notes

Normalement, une variable locale dans une procédure cesse d’exister dès que la procédure s’arrête. Une variable statique continue d’exister et conserve sa valeur la plus récente. La prochaine fois que votre code appelle la procédure, la variable n’est pas réinitialisée et elle contient toujours la valeur la plus récente que vous lui avez affectée. Une variable statique continue d’exister pendant la durée de vie de la classe ou du module dans lequel elle est définie.

Règles

  • Contexte de déclaration. Vous pouvez utiliser Static uniquement sur des variables locales. Cela signifie que le contexte de déclaration d’une variable Static doit être une procédure ou un bloc dans une procédure, et il ne peut pas s’agir d’un fichier source, d’un espace de noms, d’une classe, d’une structure ou d’un module.

    Vous ne pouvez pas utiliser Static à l’intérieur d’une procédure de structure.

  • Les types de données des variables locales Static ne peuvent pas être déduits. Pour plus d’informations, consultez Inférence de type de variable locale.

  • Modificateurs combinés. Vous ne pouvez pas spécifier Static avec ReadOnly, Shadows ou Shared dans la même déclaration.

Comportement

Lorsque vous déclarez une variable statique dans une procédure Shared, une seule copie de la variable statique est disponible pour l’ensemble de l’application. Vous appelez une procédure Shared à l’aide du nom de classe, et non d’une variable qui pointe vers un instance de la classe.

Lorsque vous déclarez une variable statique dans une procédure qui n’est pas Shared, une seule copie de la variable est disponible pour chaque instance de la classe. Vous appelez une procédure non partagée à l’aide d’une variable qui pointe vers une instance spécifique de la classe.

Exemple

L'exemple suivant montre l'utilisation de Static.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

La variable StatictotalSales n’est initialisée sur 0 qu’une seule fois. Chaque fois que vous entrez updateSales, totalSales a toujours la valeur la plus récente que vous avez calculée pour elle.

Le modificateur Static peut être utilisé dans ce contexte :

Dim (instruction)

Voir aussi