web-dev-qa-db-fra.com

Comment déclarer une variable globale dans Visual Basic?

Je veux créer une variable qui peut être utilisée dans plusieurs formulaires.

Ce sera un lieu de stockage temporaire pour les nombres entiers.

8
user3470747

Il existe deux manières de faire cela en VB: une méthode spécifique à VB et une méthode non spécifique à VB (c'est-à-dire une méthode qui pourrait également être implémentée en C #.

La manière spécifique à VB est de créer un module et de placer la variable dans le module:

Public Module GlobalVariables
   Public MyGlobalString As String
End Module

La méthode non spécifique à VB consiste à créer une classe avec des propriétés partagées:

Public Class GlobalVariables
  Public Shared Property MyGlobalString As String
End Class

La principale différence entre les deux approches est la manière dont vous accédez aux variables globales. 

En supposant que vous utilisiez toujours le même espace de noms, la méthode spécifique à VB vous permet d'accéder à la variable sans qualificateur de classe:

MyGlobalString = "Test"

Pour la méthode non spécifique à VB, vous devez préfixer la variable globale avec la classe:

GlobalVariables.MyGlobalString = "Test"

Bien qu'il soit plus détaillé, je recommande fortement la méthode non spécifique à VB car, si vous souhaitez effectuer la transition de votre code ou de vos compétences en C #, cette méthode n'est pas portable.

18
competent_tech

Vous pouvez simplement l'ajouter en tant que PUBLIC à TOUT module 

Exemple:

Module Module1 'Variables globales Public glbtxtTemplateName As String 'GLOBAL VARIABLE FOR TEMPLATE

VB charge d'abord les modaux en tant que classe et tous les éléments PUBLIC sont partagés directement. Pensez-y de cette façon.

Disons que nous avons un module appelé "MY_PROCESSES"

Lorsque vous déclarez une SUB ou une FONCTION dans "MY_PROCESSES" si vous souhaitez qu'elle soit utilisée en dehors de "MY_PROCESSES", vous déclarez comme PUBLIC comme ceci 

PUBLIC SUB LOAD_TEMPLATE () ....

Pour accéder à LOAD_TEMPLATE, il vous suffit de l’appeler dans votre code depuis n’importe où:

LOAD_TEMPLATE

Donc, si je dois définir ou utiliser la variable globale que j'ai rendue publique dans mon module, je la désigne simplement par son nom:

glbtxtTemplateName = "TEMPLATE_NAME"

SI glbtxtTemplateName = "" alors LoadTemplate

J'aime construire la classe comme ci-dessus car vous pouvez la référencer plus rapidement sans vous souvenir de la variable, mais si vous n'avez besoin que d'une ou deux variables globales, vous pouvez les nommer comme nous le faisions auparavant avec le nom de style Notation hongroise . simple et élégant. Vieux c'est nouveau et Nouveau c'est vieux.

0
C.P. Williams