Bonjour,

J'ai des constantes strings que j'ai placé dans des classes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Public class A
           Public const CONST_1 as string ="..........."
           Public const CONST_2 as string ="..........."
           Public const CONST_3 as string ="..........."
end class
Public class B
           Public const CONST_2 as string ="..........."
end class
Mes constantes sont des chaines de caractères pour paramétrer des produits
J'aimerai pouvoir accéder à un seul objet contenant toutes les constantes, le type de la classe utilisée dépendant du type de produit à paramétrer.
J'ai essayé d'utiliser l'héritage, j'ai donc du changer les constantes en propriété:

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
 
Public class A
           Public shared readonly property CONST_1 as string
                    Get
                             Return "..........."
                    end get
           end property
           Public shared readonly property CONST_2 as string
                     ...........
           end property
           Public shared readonly property CONST_3 as string
                     ...........
           end property
end class
Public class B
     Inherits A
           Public Overloads shared readonly property CONST_2 as string
                     ...........
           end property
end class
Dans mon code d'appel, j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Dim MyConst as A
select  case MyProductType
        Case "A"
              MyConst = new A
       Case "B"
              MyConst = new B
end select
 
SetProduct(MyConst.CONST_2)
Questions :
Les propriétés étant partagées, y'a t'il moyen de ne pas instancier d'objet, par exemple en mettant un alias sur la classe en cours d'utilisation?
Y' a t'il un meilleur moyen pour gérer ce type de cas?
Dans le cas B, CONST_2 appelle A.CONST_2 alors que B.CONST_2 est bien appelé si MyConst est déclaré en tant que Object : Est ce normal?