Bonjour,
j'ai une classe et je souhaiterais que celle ci hérite des memes propriétes que
system.timespan... mais je suis un peu bloque car system.timespan est une
structure. Si quelqu'un a une idée je suis preneur...
Bonjour,
j'ai une classe et je souhaiterais que celle ci hérite des memes propriétes que
system.timespan... mais je suis un peu bloque car system.timespan est une
structure. Si quelqu'un a une idée je suis preneur...
Salut,
En c# les structures ne peuvent pas hériter d'une autre structure ou d'une classe. Dans quelle mesure en as tu besoin ?
Une solution OO est de faire une composition avec cette structure.
En effet il est impossible d'hérité de structure
http://msdn.microsoft.com/fr-fr/libr...71(VS.71).aspx
Par contre si tu veux tu peux décompiler la structure TimeSpan avec reflector et faire un copier coller. Ensuite tu ajoutes le code que tu veux.
Merci,
en fait j'ai la classe suivante
Et Delai est "property" dans une autre classe "Rdtemp"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Public Class Delai Private m_Jour As Integer Private m_Heure As Integer Private m_Minute As Integer Private m_Secondes As Integer Public ReadOnly Property Minute() As Integer Get Return m_Minute End Get End Property Public ReadOnly Property Heure() As Integer Get Return m_Heure End Get End Property Public ReadOnly Property Jour() As Integer Get Return m_Jour End Get End Property Public ReadOnly Property Secondes() As Integer Get Return m_Secondes End Get End Property Public Sub New(ByVal oTimeSpan As System.TimeSpan) m_Jour = oTimeSpan.Days m_Heure = oTimeSpan.Hours m_Minute = oTimeSpan.Minutes m_Secondes = oTimeSpan.Seconds End Sub End Class
Du coup pour instancier la classe delai je faisMon objectif est de pouvoir ecrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part new delai(new timespan(1,0,0,0)).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 new delai(1,0,0,0)
Pour ca il faut juste ajouter un constructeur dans ta classe Delai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Sub New(ByVal jour as Integer, ByVal heure as Integer, ByVal minute as Integer, ByVal secondes as Integer) m_Jour = jour m_Heure = heure m_Minute = minute m_Secondes = secondes End Sub
Merci,
Mais en procedant de la sorte cela signifie que je suis obligé d'appeler la fonction avec tous les paramètres. Je ne peux pas faire comme timespan ou je pouvai appeller avec soit 2, 3 ou 4 paramètres.
ex:Dans le premier cas le premier paramètre est interprete comme heure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 new timespan(11,5,4) ou encore new timespan(1,1,5,4)
Dans le second cas il est interprete comme jour
Bien sûr qu'on peut faire çà. Ca s'appelle la surcharge. Il suffit de déclarer plusieurs contructeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Sub New(ByVal jour as Integer, ByVal heure as Integer, ByVal minute as Integer, ByVal secondes as Integer) m_Jour = jour m_Heure = heure m_Minute = minute m_Secondes = secondes End Sub Public Sub New(ByVal heure as Integer, ByVal minute as Integer, ByVal secondes as Integer) m_Jour = 0 m_Heure = heure m_Minute = minute m_Secondes = secondes End Sub
Partager