Partager via


Statique (Visual Basic)

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

Remarques

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 contient toujours la dernière valeur 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 laquelle elle est définie.

Règles

  • Contexte de déclaration. Vous ne pouvez utiliser Static que sur les variables locales. Cela signifie que le contexte de déclaration d’une variable doit être une procédure ou un bloc dans une procédure, et qu’il ne peut pas s’agir d’un fichier source, d’un espace de noms, d’une Static 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 Static variables locales ne peuvent pas être déduits. Pour plus d’informations, consultez l’inférence de type local.

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

Comportement

Lorsque vous déclarez une variable statique dans une Shared procédure, une seule copie de la variable statique est disponible pour l’ensemble de l’application. Vous appelez une Shared procédure à l’aide du nom de classe, et non d’une variable qui pointe vers une 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 illustre l’utilisation de Static.

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

La Static variable totalSales est initialisée à 0 une seule fois. Chaque fois que vous entrez updateSales, totalSales a toujours la valeur la plus récente que vous avez calculée pour celle-ci.

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

Instruction Dim

Voir aussi