Il y a 36 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[C#] Héritage , question.

 
n°63100
chappy83
_+_+_+_
Posté le 18-01-2008 à 15:23:13  profilanswer
 

Bonjour,
 
Voici mon case:
 
J'ai un form qui me sert de base form, j'ai un form 2 qui va hériter de ce form.
Dans mon base form j'ai un constructuer du form qui a un parametre d'intrée, qui doige écrire comme code pour le constructeur de mon form 2 ? Mon compiler me donne l'erreure suivante: "No overload for method 'frmChild' takes '0' arguments" .
 
Est une question de override ?
 
 
Merci,


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63101
sebx
boulet cherche canon
Posté le 18-01-2008 à 15:27:39  profilanswer
 

tu dois écrire un constructeur avec le même paramètre qui appelle le constructeur de la superclasse
en java ça s'écrit super(monArgument); et j'imagine que ça ressemble en C#


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63102
chappy83
_+_+_+_
Posté le 18-01-2008 à 15:33:47  profilanswer
 

Tu peut me donner un exemple ?


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63103
sebx
boulet cherche canon
Posté le 18-01-2008 à 15:39:57  profilanswer
 

en C#, depuis le temps que j'en ai plus fait, non  :p
en java :
 
la superclasse :

Code :
  1. public class Superclasse {
  2. public Superclasse(Object param) {
  3.  //faire des trucs ici
  4. }
  5. }


 
la classe qui hérite de Superclasse :

Code :
  1. public class Sousclasse extends Superclasse {
  2. public Sousclasse(Object toto) {
  3.  super(toto);   //appel du constructeur de superclasse
  4.                 // faire d'autres trucs ici
  5. }
  6. }


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63104
chappy83
_+_+_+_
Posté le 18-01-2008 à 15:45:46  profilanswer
 

Sous C#:
 

Code :
  1. public frmCustomer(string key):base(key)
  2. {
  3.             InitializeComponent();
  4.             this.Text = key;
  5. }


Message édité par chappy83 le 18-01-2008 à 15:46:16

---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63105
sebx
boulet cherche canon
Posté le 18-01-2008 à 15:47:23  profilanswer
 

mais là t'appelles pas le constructeur de ta superclasse, si ?


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63106
chappy83
_+_+_+_
Posté le 18-01-2008 à 15:55:39  profilanswer
 

Je viens de faire un test avec des break point. Il appelle bien le constructeur de la superclasse.


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63107
sebx
boulet cherche canon
Posté le 18-01-2008 à 16:04:54  profilanswer
 

le constructeur par défaut alors ? (sans argument)
 
parce que si tu as un constructeur qui fait aussi un this.text = key dans le constructeur de ta superclasse, faut le virer du constructeur de la sous-classe


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63108
LostSoul
Manieur de hache
Posté le 18-01-2008 à 16:12:18  profilanswer
 

le base(key) c'est l'appel à la classe de base avec le paramètre. Il fait d'abord cet appel puis exécute le constructeur de la classe dérivée.

 

en gros tu dfois avoir genre dans form un truc genre

 

protected form(strikg key) { ... blablabla }

 

pour l'appeler dand form2 tu as

 

class form2 : form {
  protected form2(string key) : base(key) { ... blablabla }

 

le :base(...) exécute le constructeur de la classe de base
tu peux aussi appeler un autre constructeur de la même classe avec :this(...)
}


Message édité par LostSoul le 18-01-2008 à 16:14:34

---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63109
sebx
boulet cherche canon
Posté le 18-01-2008 à 16:19:12  profilanswer
 

okay c'est ce que je pensais donc son this.Text = key; est probablement inutile


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63110
LostSoul
Manieur de hache
Posté le 18-01-2008 à 16:22:20  profilanswer
 

ca dépend ce qu'il fait dans le constructeur de base avec key.
 
this.Text ca définit le texte de la barre titre du form donc si c'est fait dans le constructeur de base, c'est clair ca sert à rien de le rappeler dans le constructeur du dérivé :p


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63111
sebx
boulet cherche canon
Posté le 18-01-2008 à 16:23:29  profilanswer
 

c'est pour ça que j'ai précisé "probablement"  :o


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63112
chappy83
_+_+_+_
Posté le 18-01-2008 à 16:27:45  profilanswer
 

J'ai un petit prob la:
 
 

Code :
  1. One or more errors encountered while loading the designer. The errors are listed below. Some errors can be fixed by rebuilding your project, while others may require code changes.
  2. Constructor on type 'winApp.frmChild' not found.
  3. Hide   
  4. at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  5. at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  6. at System.ComponentModel.Design.DesignSurface.CreateInstance(Type type)
  7. at Microsoft.VisualStudio.Design.VSDesignSurface.CreateInstance(Type type)
  8. at System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.CreateComponent(Type componentType, String name)
  9. at System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
  10. at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
  11. at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
  12. at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
  13. at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
  14. at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)

Message cité 1 fois
Message édité par chappy83 le 18-01-2008 à 16:27:56

---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63113
LostSoul
Manieur de hache
Posté le 18-01-2008 à 16:29:11  profilanswer
 

Celà dit j'vois pas bien l'utilité quand on sait que Text est une propriété publique de Form et qu'on n'est pas vraiment obligée de l'assigner dans le constructeur à moins qu'on cache la propriété dans la classe héritée (vu que la fenêtre n'est pas affichée lors du new mais bien lors du show, soit dans l'évènement OnLoad


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63114
LostSoul
Manieur de hache
Posté le 18-01-2008 à 16:29:46  profilanswer
 

chappy83 a écrit :

J'ai un petit prob la:
 
 

Code :
  1. One or more errors encountered while loading the designer. The errors are listed below. Some errors can be fixed by rebuilding your project, while others may require code changes.
  2. Constructor on type 'winApp.frmChild' not found.
  3. Hide   
  4. at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  5. at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  6. at System.ComponentModel.Design.DesignSurface.CreateInstance(Type type)
  7. at Microsoft.VisualStudio.Design.VSDesignSurface.CreateInstance(Type type)
  8. at System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.CreateComponent(Type componentType, String name)
  9. at System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
  10. at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
  11. at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
  12. at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
  13. at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
  14. at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)



 
Il te faut un constructeur par défaut dans ta classe dérivée (un constructeur sans paramètre et qui appelle juste le InitializeComponents())


Message édité par LostSoul le 18-01-2008 à 16:30:30

---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63115
chappy83
_+_+_+_
Posté le 18-01-2008 à 16:40:09  profilanswer
 

C'est le designer de VS 2005 qui buge, j'ai fais un rebuild au niveau de la sollution et la pas hop sa refontionne.
 
Est'il possible de éditer dans le designer un panel qui ce trouve sur la baseForm dans le form qui dérive de celui si ?


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63116
LostSoul
Manieur de hache
Posté le 18-01-2008 à 16:41:01  profilanswer
 

bah ouep
 
enfin j'ai jamais testé mais ca devrait


Message édité par LostSoul le 18-01-2008 à 16:41:42

---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63117
chappy83
_+_+_+_
Posté le 18-01-2008 à 16:44:53  profilanswer
 

Ben non les controls de mon masterForm sont read only du cotée du mon childForm.


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63118
LostSoul
Manieur de hache
Posté le 18-01-2008 à 21:04:19  profilanswer
 

bah wé ... et ?


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63143
chappy83
_+_+_+_
Posté le 22-01-2008 à 15:49:46  profilanswer
 

Une autre question sur ce sujet.
 
Est il possible d'avoire un parametre accessible seulement en read depuis un object qui hérite du masterObjet ? Mais que dans une fonction non virtuelle de mon masterObjet je fais un set de ce parametre ?
 
Merci,


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63144
Ashe
reenignE esreveR
Posté le 22-01-2008 à 16:20:56  profilanswer
 

Genre t'as que le get et pas le set, et t'as une fonction qui fait le set?


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63145
LostSoul
Manieur de hache
Posté le 22-01-2008 à 16:40:09  profilanswer
 

Admettons qu'on a ca :
 

public class A {
   ...
   public int Valeur { get { ... } set { ... }}
}


 
tu peux faire ca:
 

public class B : A {
   ...
   public new int Valeur { get { return base.Valeur; } }
 
   public void SetValeur(int v) { base.Valeur = v; }
}


 
(a priori)


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63146
chappy83
_+_+_+_
Posté le 22-01-2008 à 17:03:47  profilanswer
 

A oui sa c'est logique. Merci


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63150
LostSoul
Manieur de hache
Posté le 23-01-2008 à 07:16:31  profilanswer
 

Celà dit cacher un setter et proposer une fonction pour le faire caykon, généralement les valeurs qu'on veut initialiser à la création et lire à l'utilisation, c'est dans les paramètres du constructeur qu'on les met


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63151
Ashe
reenignE esreveR
Posté le 23-01-2008 à 10:31:09  profilanswer
 

Ptet qu'il veut filer un argument autre que juste la valeur (faire des calculs dessus avant de l'assigner, toussa)
Ou ptet qu'il fait n'importe quoi (a premiere vue c'est plutot ca :D)


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63159
LostSoul
Manieur de hache
Posté le 23-01-2008 à 16:22:22  profilanswer
 

Ashe a écrit :

Ptet qu'il veut filer un argument autre que juste la valeur (faire des calculs dessus avant de l'assigner, toussa)
Ou ptet qu'il fait n'importe quoi (a premiere vue c'est plutot ca :D)


 
T'es quand même pas sympa comme mec :p


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63160
Ashe
reenignE esreveR
Posté le 23-01-2008 à 16:45:12  profilanswer
 

Bah c'est juste une observation, ca fait des mois qu'il pose des questions de pre-debutant :spamafote:


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63161
LostSoul
Manieur de hache
Posté le 23-01-2008 à 17:49:43  profilanswer
 

et on parle pas de classes virtuelles ni d'interfaces ni de singletons ni de templates ni de ... :sweat:
 
Ah ouais de réflexivité aussi :sol:


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63162
Ashe
reenignE esreveR
Posté le 23-01-2008 à 19:28:00  profilanswer
 

templates != generics
Chavais pas que ca s'traduisait reflection
(note on a deja eu un type sur #c++ qui avait traduit template, mais chai plus comment il appelait ca... un mot utilise normalement pour la couture)


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63163
sebx
boulet cherche canon
Posté le 23-01-2008 à 19:40:38  profilanswer
 

patron ?  :ddr:


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°63164
Ashe
reenignE esreveR
Posté le 23-01-2008 à 19:43:37  profilanswer
 

Wai ca devait etre ca :D
Quand le type s'amene et dit "comment on specialise un patron?" ben euh.. voila quoi...


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63199
chappy83
_+_+_+_
Posté le 25-01-2008 à 14:59:09  profilanswer
 

Tu n'as pas beacoup d'estimme a mon ragard Ashe, au début j'ai cru que tu pouvais aider les gens, mais la je pense que tu pollue plus q'autre chose. Et je suis sur que je ne suis pas le seulle qui pense sa.

n°63202
Ashe
reenignE esreveR
Posté le 25-01-2008 à 15:00:43  profilanswer
 

Oui, desole d'avoir repondu a ta question alors :D


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63203
LostSoul
Manieur de hache
Posté le 25-01-2008 à 15:00:50  profilanswer
 

A propos de pollution, faudrait quand même surveiller un peu comment tu tapes parce que bon c'est limite illisible :p


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°63204
chappy83
_+_+_+_
Posté le 25-01-2008 à 15:02:09  profilanswer
 

Ashe a écrit :

Oui, desole d'avoir repondu a ta question alors :D


 
Ben je ne trouve pas que tu a répondu.


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63205
chappy83
_+_+_+_
Posté le 25-01-2008 à 15:02:34  profilanswer
 

LostSoul a écrit :

A propos de pollution, faudrait quand même surveiller un peu comment tu tapes parce que bon c'est limite illisible :p


 
Je ne suis pas natif Fracais ou Wallon. C'est pas une raison et je ne fais pas toujours gaffe.


Message édité par chappy83 le 25-01-2008 à 15:05:27

---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be
n°63208
Ashe
reenignE esreveR
Posté le 25-01-2008 à 15:13:09  profilanswer
 

chappy83 a écrit :

Ben je ne trouve pas que tu a répondu.


Ashe a écrit :

Genre t'as que le get et pas le set, et t'as une fonction qui fait le set?


Ok :D


---------------
Globe trotter/SDF - Arcachon, France
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63209
chappy83
_+_+_+_
Posté le 25-01-2008 à 15:23:01  profilanswer
 


 
Ben oui c'est bien sa.


---------------
www.eleonoredeco.be - www.cuisine-curry-piment.be

Aller à :
Ajouter une réponse