begin process at 2010 02 09 22:32:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

retourner une structure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

retourner une structure

mercredi 23 février 2005 à 15:42:42 | retourner une structure

bip98

J'ai trouve un lien qui en parle... mais il me semble pas très juste:
http://www.csharpfr.com/forum.v2.aspx?ID=189261


Voilà mon cas:
 
public struct struct_motor
   {
     public int OO;
     public int PP;
   }
....
public struct_motor motor_config;
....
motor_config = new struct_motor();


//Appel

 Axe_move motor_class = new Axe_move();
 motor_config=motor_class.gauche(motor_config);



//Ma class

public class Axe_move
 {
  //Attribu
  private Test_moteur.f_moteur.struct_motor motor_struct_class;
  //méthodes
  public motor_struct_class gauche(Test_moteur.f_moteur.struct_motor structure_config)
   {
     this.motor_struct_class=structure_config;
     this.motor_struct_class.OO=48;
      return motor_struct_class;
   }
mercredi 23 février 2005 à 17:06:23 | Re : retourner une structure

MorpionMx

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Ca me semble etre ca plutot :

    public class Axe_move
    {
        //Attribu
        private Test_moteur.f_moteur.struct_motor motor_struct_class;
       
        //méthodes
   
        public struct_motor gauche(Test_moteur.f_moteur.struct_motor structure_config)
        {
            this.motor_struct_class=structure_config;
            this.motor_struct_class.OO=48;
            return this.motor_struct_class;
        }

Mx
mercredi 23 février 2005 à 20:01:56 | Re : retourner une structure

APWEB

Membre Club
public struc struct_motor
{
    int OO;
    int PP;
    public struct_motor( int oo ,int pp)
    {
       OO = oo;
       PP = pp;
       }
    }
.....
 struc_motor strmotor;
strmotor = new struct_moto(1,1);
......

AP
lundi 28 février 2005 à 10:19:00 | Re : retourner une structure

bip98

encore un problème..

motor_move move = new motor_move(this.motor_struct_class);
Time_break_motor_X = new Thread(new ThreadStart(move.axe_x));

donc la j'envoie la strucutre motor_struct_class
et j'appel ma class.

dans ma classe:

 private class motor_move
   {
     private Test_moteur.f_moteur.struct_motor motor_struct_class;
     int[] v_moteur = new int[4];


     public motor_move(Test_moteur.f_moteur.struct_motor structure_config)
   {
      this.motor_struct_class=structure_config;  
   }


Mon problème est comment je fais pour faire un return de ma struture dans la class motor_move ! Je suis embeté car j'utilise un thread... comment m'y prendre?


(encore juste une question bete: comment fait-on pour tester une décimal ? --> par exemple je voudrais tester :est-ce que 7.23 est plus grand que .5 ou plus petit .5 --> dans ce cas plus petit..)


lundi 28 février 2005 à 10:26:08 | Re : retourner une structure

MorpionMx

Membre Club Administrateur CodeS-SourceS
Je suis pas sur d'avoir compris, mais je te dirais que tu dois pouvoir utiliser les délégués pour retourner ta struct.
Renvoyer des données depuis un thread est une question assez recurrente sur le site, tu dois pouvoir trouver pas mal de chose la dessus comme ici : http://www.csharpfr.com/forum.v2.aspx?ID=373183

Pour comparer ton Decimal, tu as la méthode tonDecimal.CompareTo(); ou la méthode static Decimal.Compare();

Mx
lundi 28 février 2005 à 11:26:35 | Re : retourner une structure

bip98

Le problème avec les délégates...

j'arrive pas à envoyer une structure:

ex:
normal:
delegate void Call_axe();
(envoie rien return rien..)

mais avec une structure ??
delegate structure Call_axe();                 //ca passe pas.. comment faire ?  

Je voudrais envoyer et la retourner..



Merci pour les decimals !

lundi 28 février 2005 à 11:40:52 | Re : retourner une structure

MorpionMx

Membre Club Administrateur CodeS-SourceS
Dans la class ou il y a ton thread tu déclares :

        public delegate void CallAxeEvent(TaStruct taStruct);
        public event CallAxeEvent Call_Axe;

Dans la fonction de ton thread
         Call_Axe(taStruc); // Retourne ta struc


Ensuite, tu as plus qu'a inscrire ton objet a l'évenement CallAxeEvent

Par contre, essaie d'etre un peu plus clair avec tes noms d'objets ;) En tout cas, j'ai du mal a suivre moi
Mx
lundi 28 février 2005 à 11:43:46 | Re : retourner une structure

bip98

Merci je vais tester ca !
Je vais faire pour être plus clair la prochaine fois!!

lundi 28 février 2005 à 13:34:26 | Re : retourner une structure

bip98

Alors je résume:

Je déclare:
  
 //Déclaration du delegate
  public delegate void CallAxeEvent(Test_moteur.f_moteur.struct_motor structure_config);
//De event..
  public event CallAxeEvent Call_Axe;

Puis dans ma classe:
//La stucture s'appel this.motor_struct_class dans ma class.

CallAxeEvent MoveAxe = new CallAxeEvent(motor_move.AxeXY);
this.motor_struct_class.v_pas=48;  
this.motor_struct_class=MoveAxe(this.motor_struct_class);
   //Appel de l'autre class.


Ensuite dans mon autre class qui est :  motor_move.AxeXY:
 
private class motor_move
   {
     private Test_moteur.f_moteur.struct_motor motor_struct_class;
    
     public static void AxeXY(Test_moteur.f_moteur.struct_motor structure_AxeXY)
     {
        structure_AxeXY.v_pas=96;
        Call_Axe(structure_AxeXY);    //Pour le return..
    }
}



Voilà le compilateur me marque les erreurs sont en rouge:
[C# Erreur] Motor_class.cs(24): Impossible de convertir implicitement le type 'void' en 'Test_moteur.f_moteur.struct_motor'
  [C# Erreur] Motor_class.cs(61): Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Axe_move.Call_Axe'

lundi 28 février 2005 à 14:18:30 | Re : retourner une structure

MorpionMx

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
 Attention, je crois qu'il y a eu confusion (ou incompréhension).
On reprend depuis qques messages en haut, ou tu me dis

Mon problème est comment je fais pour faire un return de ma struture dans la class motor_move ! Je suis embeté car j'utilise un thread... comment m'y prendre?

Ce que j'ai compris, c'est que tu aimerais que le Thread te retourne la structure. Pour ce faire, dans cette class (la classe contenant le Thread), tu déclares ton délégué et ton event.
Dans la fonction du Thread, (la ou tu aurais aimé faire un return), tu mets
Call_Axe(la structure que tu veux retourner);

Ensuite, depuis la classe depuis laquelle tu veux appeler ce Thread, il faut que ton objet inscrive l'évenement Call_Axe (ca ne se fait pas en instanciant)

Tiens, je t'ai fait un exemple concret, parce que sinon tu risques de galérer encore beaucoup (j'ai du mal a expliquer les choses ^^)


using System;
using System.Threading;

namespace Test
{

public class ThreadClass
{
public delegate void MonEvent(MaStruct laStruct);
public event MonEvent monEvent;
public Thread t;

public MaStruct laStruct;

public ThreadClass(MaStruct laStruct)
{
t = new Thread(new ThreadStart(MethodeThread));
this.laStruct = laStruct;
}

public void StartThread()
{
t.Start();
}

private void MethodeThread()
{
Console.WriteLine("Lancement du thread");
laStruct.str = "bbb";
monEvent(laStruct);
}
}

public struct MaStruct
{
public string str;

}

public class CallingClass
{
MaStruct maStruct;
ThreadClass tc;

public CallingClass()
{
maStruct.str = "aaa";
Console.WriteLine("valeur de la structure avant lancement du thread " + maStruct.str);
tc = new ThreadClass(maStruct);
tc.monEvent += new Test.ThreadClass.MonEvent(tc_monEvent);
tc.StartThread();
}


private void tc_monEvent(MaStruct laStruct)
{
maStruct = laStruct;
Console.WriteLine("valeur de la structure apres lancement du thread " + maStruct.str);
Console.ReadLine();
}

public static void Main()
{
CallingClass c = new CallingClass();
}
}


Si cela ne résoud pas ton probleme, alors il faudra nous donner le code de toutes les classes incriminées, ou alors reprendre depuis le début ce qu'il ne va pas, sinon on va tourner en rond ;)

Mx

1 2

Cette discussion est classée dans : public, class, config, struct, motor


Répondre à ce message

Sujets en rapport avec ce message

Class, thread, Erreur.. [ par bip98 ] voilà mon code:class Axe_move {  //Attribu  private int i;  int[] v_moteur = new int[4];   //Constructeur  public Axe_move()   { &nbs Tableau dans une structure [ par bip98 ] Je n'arrive pas à créer un tableau dans une structure..voilà mon code:public struct struct_motor   {     public string port_dev;     public int v_ind; class ou struct comme string [ par cedkat ] bonjour,Comment faire pour déclarer une class ou une struct comme string (on ne peut pas en dérivecar elle est sealed ) pour par exempleMaclass  macla DLL Pointeur sur struct [ par kikoff ] ben voila j'ai un gros soucis je dois recuperede la dll une fonction qui renvoit un pointeur sur structureseulement voila comment faire pour recupere Constructeur "intelligent" [ par revlis ] BonjourJ'ai des class hérité de userControl et je voudrait passer les composant a une class qui les initilise et construit si besoinpour cela j'ai fai Je trouve tjs pas de solution pour mon blem "A l'aide" [ par hred1 ] Bon j'explique tout:J'ai le même namespace par toutje suis dans la class 1 (class fraim ok)et je cherche à appler  methode() qui de trouve dans class [.NET2] acceder a une fonction de Form1 dans une autre classe [ par ChamY ] Bonjour,J'ai une question toute bete je pense, mais qui me pose un ptit probleme.Je dispose d'une forme avec ca class (class form1), j ai egalement un Problème POO et héritage [ par fregolo52 ] bonjour,Le novice en POOa besoin d'aide voici mon code :public class Device{  public void Update();}public class Camera : Device{   public voi Dérivation de classe abstraite [ par yoh_777 ] Je voudrais simplement dériver une classe abstraite ayant un constructeur comportant un paramètre.  Voici mon programme  <div style="border: 1pt d Modularité & Sérialisation XML [ par Julien237 ] Bonjour,J'ai une application utilisant une architecture de classes du style :[XmlInclude(typeof(MyClassA)), XmlInclude(typeof(MyClassB))]public class


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales