Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/06/2012, 16h08   #1
hooker07
Invité de passage
 
Homme
Développeur .NET
Inscription : juin 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2012
Messages : 1
Points : 0
Points : 0
Par défaut ASP VBSCRIPT Pseudo Heritage

Bonjour,

j'ai lu le tutoriel de ce site à cette adresse

Tous a la fin il y a possibilité, de réaliser un pseudo héritage entre deux classe,
le problème est que je n'arrive pas à realisé cela.

voici mon code :

Code :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Class Utilisateur
 
    Private Num_EH 
    Private Num_Reg 
 
    Public Sub Class_Initialize()
        SetNum_EH() : SetNum_Reg() 
    End Sub
 
    Public Property Get SetNum_EH()
        Num_EH = Session("EH_Num") 
    End Property
 
    Public Property Get SetNum_Reg()
        Num_Reg = Session("CMSI")
    End Property
 
    Public Property Get GetNum_EH()
        Response.Write Num_EH
    End Property
 
    Public Property Get GetNum_Reg()
        Response.Write Num_Reg
    End Property
 
End Class
 
' creation d'un user
Set User = New Utilisateur
 
 
puis :
 
 
Class ListeD_Regions
 
    Private InstanceUser
    Private UserNum_EH 
    Private UserNum_Reg 
    Private Sel_Num_EH 
    Private Sel_Num_Reg 
 
    Public Sub Class_Initialize()
        Set InstanceUser = New Utilisateur
        SetUser_Num_EH() : SetUser_Num_Reg() : SetSel_Num_EH() : SetSel_Num_Reg()
    End Sub
 
 
    Public Property Get SetUser_Num_EH()
        UserNum_EH = InstanceUser.SetNum_EH
    End Property
 
    Public Property Get SetUser_Num_Reg()
        UserNum_Reg = InstanceUser.SetNum_Reg
    End Property
 
    Public Property Get SetSel_Num_EH()
        If Not IsEmpty(Request.Form("EH")) Then Sel_Num_EH = Request.Form("EH") else Sel_Num_EH = UserNum_EH
    End Property
 
    Public Property Get SetSel_Num_Reg()
        If Not IsEmpty(Request.Form("Reg")) Then    Sel_Num_Reg = Request.Form("Reg") else Sel_Num_Reg = UserNum_Reg
    End Property
 
    Public Property Get GetSel_Num_EH()
        Response.Write Sel_Num_EH
    End Property
 
    Public Property Get GetSel_Num_Reg()
        Response.Write Sel_Num_Reg
    End Property
 
End Class
 
Set ListReg = New ListeD_Regions
Si je remplace UserNum_EH = InstanceUser.SetNum_EH ( mon setter qui affecte la valeur )
par UserNum_EH = InstanceUser.GetNum_EH ( le getter qui permet d'afficher la valeur )

ma valeur va bien s'afficher sur ma page, mais sinon la valeur (InstanceUser.SetNum_EH qui est donc le numero EH de ma classe Utilisateur ) n'ai pas affecté à la variable UserNum_EH de ma classe ListeD_Regions

Quelqu'un serait m’expliquer pourquoi ?

Cordialement.
hooker07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2012, 19h19   #2
tsuji
Membre chevronné
 
Inscription : octobre 2011
Messages : 412
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 412
Points : 675
Points : 675
Je viens de regarder le problème surlevé. Il est clair qu'il y ait des erreurs fondamentales.

[1]
Citation:
Public Sub Class_Initialize()
SetNum_EH() : SetNum_Reg()
End Sub
Ce genre de construction traite SetNum_EH et SetNum_Reg comme des sub/function mais pas comme property propre. Ce n'est pas correct. Si vous voulez initier Num_EH et Num_Reg, vous le faites directement. La même pour la classe ListD_Regions.

[2] Il est possible qu'il y a erreurs de frappe pour SetNum_EH() et SetNum_Reg() etc: ils sont des property Let, pas Get evidemment. La même pour la classe ListD_Regions.

[3] Mais il ne suffice pas de corriger le mot clé de Get à Let, il y a un caractère important pour les property Let: il faut y avoir au moins un argument qui est la "valeur" - vous devriez relire la signature sur le property Let dans le tuto.

[4] L'état normal de construction des property Get est qu'il va retourner une valeur et la construction de la valeur retournée est de la même manière comme une fonction vbs. Or, tous les property Get ne retournent rien: ce n'est pas a priori faux mais il est possible que vous n'avez pas faites attention à cet aspect de chose.

Outre que ces remarques, je n'ai pas scruté le script.
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web