Static (Visual Basic)

Mise à jour : novembre 2007

Spécifie qu'une ou plusieurs variables locales déclarées doivent continuer à exister et conservent 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 à exister et conserve sa valeur la plus récente. La prochaine fois que votre code appellera la procédure, la variable ne sera pas réinitialisée et elle contiendra encore la valeur la plus récente que vous lui aviez assignée. Une variable statique continue à exister pendant toute 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 uniquement Static sur les variables locales. Cela signifie que le contexte de déclaration pour une variable Static doit être une procédure ou un bloc dans une procédure et ne peut pas être un fichier source, un espace de noms, une classe, une structure ou 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 local.

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

Comportement

Le comportement de toute variable locale est différent suivant qu'elle soit déclarée dans une procédure Shared ou non. Si la procédure est Shared, toutes ses variables locales sont partagées automatiquement. Y compris les variables Static. Il y a uniquement une copie d'une variable de ce type pour l'application entière. Vous appelez une procédure Shared à l'aide du nom de classe, et non d'un pointage variable vers une instance de la classe.

Si la procédure est Shared, ses variables locales sont des variables d'instance. Y compris les variables Static. Il y a une copie indépendante de chaque variable dans chaque instance de la classe. Vous appelez une procédure non partagée à l'aide d'un pointage variable vers une instance spécifique de la classe. Toute variable dans cette instance est indépendante d'une variable avec le même nom dans une autre instance. Par conséquent, elles peuvent maintenir des valeurs différentes.

Exemple

L'exemple suivant illustre l'utilisation du mot clé Static.

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

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

Le modificateur Static peut être utilisé dans le contexte suivant :

Dim, instruction (Visual Basic)

Voir aussi

Concepts

Durée de vie dans Visual Basic

Déclaration de variable en Visual Basic

Inférence de type local

Référence

Shadows

Shared (Visual Basic)

Autres ressources

Structures constituées à partir de vos propres types de données

Présentation des classes