Variable Variant

Résolu
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007 - 6 juin 2006 à 17:56
deathlighter Messages postés 3 Date d'inscription mardi 5 août 2008 Statut Membre 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.
A voir également:

11 réponses

Utilisateur anonyme
6 juin 2006 à 18:14
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>
3
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
7 juin 2006 à 09:23
Merci pour ta réponse!
En fait, tu viens de stopper net mes recherches

Woot
Alias Wouter Tjon.
0
cs_Je sais pas Messages postés 8 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 20 décembre 2006
30 juin 2006 à 14:49
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
0
Utilisateur anonyme
30 juin 2006 à 15:10
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Je sais pas Messages postés 8 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 20 décembre 2006
30 juin 2006 à 15:16
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
0
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
30 juin 2006 à 15:39
Salut,
Pourrais-tu passer la partie de ton code concernée?
Ca pourrait être utile pour ton aide.

_________________________________________________________________________
Woot
0
cs_Je sais pas Messages postés 8 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 20 décembre 2006
30 juin 2006 à 16:00
// 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
0
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
30 juin 2006 à 16:07
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
0
woot6768 Messages postés 393 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 23 mars 2007
30 juin 2006 à 16:09
sReference = ((




string
)vReference.ToString());


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

_________________________________________________________________________
Woot
0
deathlighter Messages postés 3 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 4 septembre 2008
4 sept. 2008 à 10:52
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
0
deathlighter Messages postés 3 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 4 septembre 2008
4 sept. 2008 à 17:00
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
0
Rejoignez-nous