"La variable 'oContract' est utilisée avant qu'une valeur ne lui ait été assigné [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
-
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
-
Bonjour à tous,
Je suis nouveau sur ce forum, je lis vos messages avec intérêt.
Je "développe" en VB 20008 Express, sous Windows 7.
Je débute comme vous allez voir ...

Voici ma question:

Dans une procédure déclenchée par un click sur un bouton, je déclare une variable:
Dim oContract As TWSLib.IContract

(VB m'indique que TWSLib est un "namespace", Icontract est une "interface").

Juste en dessous j'affecte des valeur à oContract:
oContract.symbol = "ACA"
oContract.secType = "STK"
oContract.exchange = "SMART"
oContract.currency = "EUR"


Et c'est le drame ... VB 2008 m'indique que "La variable 'oContract' est utilisée avant qu'une valeur ne lui ait été assignée"

Je ne comprends plus: Je défini correctement ma variable, je lui affecte des valeurs constantes ... et j'ai ce message d'erreur.

Alors quelqu'un peut-il me dire où est l'erreur (de logique) et comment faire pour la corriger?

Merci à tous,

Laurent.

4 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Une interface est un élément d'un objet.

Déclarer ton interface, c'est bien, mais il faut lui assigner un objet pour pouvoir l'utiliser, sinon, la référence sera Nothing.

Il faut que tu instancie une classe qui implémente cette interface pour pouvoir l'utiliser.

Mon site
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
Bonjour, essaye Dim oContract As TWSLib.IContract = New TWSLib.IContract, cela pourrai peut etre resoudre ton souci...
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010

Merci pour ta réponse Alexandre, j'ai essayé mais hélas:
"Impossible d'utiliser 'NEW' pour une interface"
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010

Merci NHenry,
Je me suis plongé dans le concept d'Interface pour bien comprendre. J'ai encore du boulot!