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

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

4 réponses

Répondre au sujet
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 2 avril 2010 à 20:34
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
alexandrevandenberghe 149 Messages postés lundi 24 décembre 2007Date d'inscription 16 juillet 2013 Dernière intervention - 2 avril 2010 à 11:46
0
Utile
Bonjour, essaye Dim oContract As TWSLib.IContract = New TWSLib.IContract, cela pourrai peut etre resoudre ton souci...
Commenter la réponse de alexandrevandenberghe
KOBAXU 10 Messages postés vendredi 2 avril 2010Date d'inscription 23 août 2010 Dernière intervention - 2 avril 2010 à 11:49
0
Utile
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
KOBAXU 10 Messages postés vendredi 2 avril 2010Date d'inscription 23 août 2010 Dernière intervention - 6 avril 2010 à 09:15
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.