Variable Variant [Résolu]

woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 6 juin 2006 à 17:56 - Dernière réponse : deathlighter
Messages postés
3
Date d'inscription
mardi 5 août 2008
Dernière intervention
4 septembre 2008
- 4 sept. 2008 à 17:00
Voilà mon souci :
En VB.NET, on peut déclarer une variable Variant de la manière suivante :
Dim maVariable As Variant

Comment peut on déclarer ce type de variable en C#?

Woot
Alias Wouter Tjon.
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 6 juin 2006 à 18:14
3
Merci
Salut,

varient n'existe plus en .net (je sais pas ou tu l'as vu dans vb.net). Utilise le type object.




Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).
/FONT>

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Charles Racaud
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 7 juin 2006 à 09:23
0
Merci
Merci pour ta réponse!
En fait, tu viens de stopper net mes recherches

Woot
Alias Wouter Tjon.
Commenter la réponse de woot6768
cs_Je sais pas
Messages postés
8
Date d'inscription
jeudi 22 juillet 2004
Dernière intervention
20 décembre 2006
- 30 juin 2006 à 14:49
0
Merci
Bonjour tout le monde.

Je rencontre le même problème,à savoir que j'ai codé en VB6 et je déclare des variables variantes. Je dois maintenant le faire en C#.Mais je ne vois pas du tout comment utiliser l'ojet Object.

Si quelqu'un pouvait m'aider.

Merci beaucoup.

Youss
Commenter la réponse de cs_Je sais pas
Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 30 juin 2006 à 15:10
0
Merci
Salut,

Je vois pas le pb, c'est le même fonctionnement:

En vb6:



Dim
TaVariable
As
Varient

TaVariable = CeQueTuVeut




Maintenant:



object
TaVariable = CeQueTuVeut;






Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).

/FONT>
Commenter la réponse de Charles Racaud
cs_Je sais pas
Messages postés
8
Date d'inscription
jeudi 22 juillet 2004
Dernière intervention
20 décembre 2006
- 30 juin 2006 à 15:16
0
Merci
Je te remercie pour ton aide rapide.

En fait ,ce que tu m'as dit,je l'ai déjà fait là. Mais le problème que je rencontre,c'est que j'appelle cette variable dans une fonction qui prend comme argument un String.Je recontre toujours l'erreur : "Ne peut pas transformer de "object" vers "string".Je bute sur ça.Un cast ne passe pas,je pense.

Une fois cette étape passée,le reste suivra tout seul.

Tu as une idée?

Youss
Commenter la réponse de cs_Je sais pas
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 30 juin 2006 à 15:39
0
Merci
Salut,
Pourrais-tu passer la partie de ton code concernée?
Ca pourrait être utile pour ton aide.

_________________________________________________________________________
Woot
Commenter la réponse de woot6768
cs_Je sais pas
Messages postés
8
Date d'inscription
jeudi 22 juillet 2004
Dernière intervention
20 décembre 2006
- 30 juin 2006 à 16:00
0
Merci
// Add/Advise Items Variables Declarations



string
sReference;

// Archestra Object's Path


// Variant Variables Declarations

object
vReference =

""
;

..............................
privatevoid Init_Items()
{
         
// Tank_Current_Level Item
         sReference = "Cuve_001.Niv_Courant";
//Current Archestra Object's Path
         vReference = sReference; // Variant Variable Allocation

         // Add The Item To The Internal LMXProxyServer Table
         hLMXItem_1 = g_LMXProxyObject.AddItem(g_hLMXProxy, vReference).

// Advise the Item

while (true)
{
      g_LMXProxyObject.Advise(g_hLMXProxy, hLMXItem_1);
}

En fait,j'avais déjà implémenté cette fonction en VB6.J'avais utilisé une Variant pour la variable vReference.Jusque là pas de problème.Je dois maintenant implémenter exactement la même fonction mais en C#.Le problème du C# est que le type Variant n'existe pas.Je crée donc un objet vReference (vide au départ).Je lui affecte ensuite la string sReference.

Par défault,la fonction AddItem reçoit un int et un string : AddItem(int,string).A la compilation,j'ai donc l'erreur : "Ne peut pas convertir de "object" vers "string".J'ai essayé de caster vReference en string en la stockant dans une variable temp que j'ai donc placé dans la fonction AddItem comme ceci : AddItem(hLMXItem_1,temp).Mais là,j'ai une erreur sur le temp,qui me spécifie "de vérifier si temp n'est pas null" ou alors "me conseille d'utiliser l'opérateur new".

Mon problème alors je pense est de trouver le bon cast à effectuer pour passer d'un object à un string (object -> string).

Merci d'avance.

Youss
Commenter la réponse de cs_Je sais pas
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 30 juin 2006 à 16:07
0
Merci
As-tu essayé un ToString sur vReference ?

Comme ceci : vReference = vReference.Tostring();

Si cela ne fonctionne pas j'ai peu être autre chose, mais il faudrais que je teste...
Essaye déjà ceci

_________________________________________________________________________
Woot
Commenter la réponse de woot6768
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 30 juin 2006 à 16:09
0
Merci
sReference = ((




string
)vReference.ToString());


Voilà c'est ça, je viens de le trouver...

_________________________________________________________________________
Woot
Commenter la réponse de woot6768
deathlighter
Messages postés
3
Date d'inscription
mardi 5 août 2008
Dernière intervention
4 septembre 2008
- 4 sept. 2008 à 10:52
0
Merci
Moi j'ai un autre problème à te proposer.
Jusque la je déclaré un tableau de type object puis dans un méthode je lui assigne le type dont j'ai besoin mais le problème est que je ne peu pas accéder au variable public du type que j'utilise après l'initialisation:

voila mon code
//dans la partie de déclaration des variable globale*
private Object[] Tableau;

// dans la méthode voulu
switch(code)
{
 case "SECTION" : Tableau = new Section[nbSection];
 for(int index=0; index<nbCode; index++)
 {
 Tableau[index] = LaSectionVoulu;
 MethodeDutilisation(Tableau[index].CODE_SECTION,Tableau[index].LIB_SECTION);
 }
 break;
 case "SOUSCLASSE" : Tableau = new SousClasse[nbSection];
 for(int index=0; index<nbCode; index++)
 {
 Tableau[index] = LaSousClasseVoulu;
 MethodeDutilisation(Tableau[index].CODE_SOUSCALSSE,Tableau[index].LIB_SOUSCALSSE);
 }
 break;
 default : break;

}


mais la le compilateur repond que CODE_SOUSCALSSE n'est pas membre de object
Commenter la réponse de deathlighter
deathlighter
Messages postés
3
Date d'inscription
mardi 5 août 2008
Dernière intervention
4 septembre 2008
- 4 sept. 2008 à 17:00
0
Merci
En fait j'ai trouvé tous seul il me suffisait  de déclarer un tableau d'objet comme je le faisait au début ( cela creer un pointeur puisque que c'est du c#) ensuite dans la méthode je déclaré un autre tableau du type désiré que je remplissais et me servais pour le traitement et ensuite je faisais pointer  le 1er tableau vers le second et pour finir dans le dernier traitement ( une autre méthode voila pourquoi j'avais besoin de conservé ce tableau, je crée un autre tableau du type désiré et à l'aide d'un cast je le fais pointer vers mon 1er tableau qui contient ce dont j'ai besoin
Commenter la réponse de deathlighter

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.