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

Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
- - Dernière réponse : KOBAXU
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
- 6 avril 2010 à 09:15
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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
0
Merci
Bonjour, essaye Dim oContract As TWSLib.IContract = New TWSLib.IContract, cela pourrai peut etre resoudre ton souci...
Commenter la réponse de alexandrevandenberghe
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
0
Merci
Merci pour ta réponse Alexandre, j'ai essayé mais hélas:
"Impossible d'utiliser 'NEW' pour une interface"
Commenter la réponse de KOBAXU
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Statut
Membre
Dernière intervention
23 août 2010
0
Merci
Merci NHenry,
Je me suis plongé dans le concept d'Interface pour bien comprendre. J'ai encore du boulot!
Commenter la réponse de KOBAXU