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

Résolu
KOBAXU Messages postés 10 Date d'inscription vendredi 2 avril 2010 Statut Membre Dernière intervention 23 août 2010 - 2 avril 2010 à 10:04
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.

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 avril 2010 à 20:34
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
1
Utilisateur anonyme
2 avril 2010 à 11:46
Bonjour, essaye Dim oContract As TWSLib.IContract = New TWSLib.IContract, cela pourrai peut etre resoudre ton souci...
0
KOBAXU Messages postés 10 Date d'inscription vendredi 2 avril 2010 Statut Membre Dernière intervention 23 août 2010
2 avril 2010 à 11:49
Merci pour ta réponse Alexandre, j'ai essayé mais hélas:
"Impossible d'utiliser 'NEW' pour une interface"
0
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
Merci NHenry,
Je me suis plongé dans le concept d'Interface pour bien comprendre. J'ai encore du boulot!
0
Rejoignez-nous