Static (Visual Basic)
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 (Visual Basic).
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 la 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 Static totalSales 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
Référence
Concepts
Durée de vie dans Visual Basic
Déclaration de variable en Visual Basic
Inférence de type local (Visual Basic)