Function Shared ou pas ?

Function Shared ou pas ? - C#/.NET managed - Programmation

Marsh Posté le 11-03-2005 à 19:40:45    

Bonjour à vous
 
Voila j'ai quelques galères avec un ch'ti code et je me triture les neurones concernant l'utilité du mot clé Shared et ses inconvéniants.
 
Pour les avantages, pas de problème, mais pour les inconveniants, bah j'en sais rienG. Dois je instancier mes classes à chaque fois ou alors puis je utiliser ce mot clé sans craindre une problème de lenteur par la suite :sweat: ?

Reply

Marsh Posté le 11-03-2005 à 19:40:45   

Reply

Marsh Posté le 11-03-2005 à 22:23:52    

tu peux rappeler ce que c'est que shared deja et comment tu l'utilise :/
(met un bon de code)

Reply

Marsh Posté le 11-03-2005 à 22:37:15    

y a pas de mot-clé Shared

Reply

Marsh Posté le 11-03-2005 à 22:51:21    

slvn >> "shared" est l'équivalent VB de static. toutes les variables ou méthodes de classe déclarées en static ne nécessitent pas la création d'un objet pour être appelées.
 
Gfreeman >> c'est une question de conception avant tout. tu dois te poser la question "dois-je créer un objet pour utiliser cette méthode ou pas ?"
de même, as tu besoin d'utiliser des variables globales ou pas ? normalement non, mais il y a des cas ou on ne peut pas s'en passer ou difficilement (notamment pour gérer les préférences d'un programme par exemple).
regarde la classe MessageBox de .NET par exemple. elle contient une méthode statique Show() qui permet son affichage. si cette méthode n'était pas statique, ça signifierait que tu devrais à chaque fois créer un nouvel objet, puis appeler Show(), etc... bonjour l'occupation mémoire si tu veux régulièrement informer l'utilisateur par des MessageBox !
ses inconvénients : impossible de surcharger une méthode static, pas de polymorphisme, etc...
 
bref, le tout est de savoir si tu as besoin de 36 instances de la classe toto ou non


Message édité par Harkonnen le 11-03-2005 à 22:52:12

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-03-2005 à 22:52:32    

Taz a écrit :

y a pas de mot-clé Shared


c'est du VB .NET ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-03-2005 à 22:54:12    

ben cat VB alors

Reply

Marsh Posté le 11-03-2005 à 22:58:47    

Taz a écrit :

ben cat VB alors


y'a pas de cat VB .NET :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-03-2005 à 23:17:52    

et c'est le drame :)

Reply

Marsh Posté le 11-03-2005 à 23:20:55    

Harkonnen a écrit :

y'a pas de cat VB .NET :spamafote:


ben il est donc temps d'élargir la cat VB

Reply

Marsh Posté le 11-03-2005 à 23:24:11    


Oui effectivement, c'est du vb.NET  :whistle:  
 

Harkonnen a écrit :

slvn >> "shared" est l'équivalent VB de static. toutes les variables ou méthodes de classe déclarées en static ne nécessitent pas la création d'un objet pour être appelées.
 
Gfreeman >> c'est une question de conception avant tout. tu dois te poser la question "dois-je créer un objet pour utiliser cette méthode ou pas ?"
de même, as tu besoin d'utiliser des variables globales ou pas ? normalement non, mais il y a des cas ou on ne peut pas s'en passer ou difficilement (notamment pour gérer les préférences d'un programme par exemple).
regarde la classe MessageBox de .NET par exemple. elle contient une méthode statique Show() qui permet son affichage. si cette méthode n'était pas statique, ça signifierait que tu devrais à chaque fois créer un nouvel objet, puis appeler Show(), etc... bonjour l'occupation mémoire si tu veux régulièrement informer l'utilisateur par des MessageBox !
ses inconvénients : impossible de surcharger une méthode static, pas de polymorphisme, etc...
 
bref, le tout est de savoir si tu as besoin de 36 instances de la classe toto ou non


 
Je te remercie pour toutes ces informations ! Pour ma part, je pense n'avoir pas le choix et devoir utiliser du Shared. Par contre, je me demande si cela ne présente pas un risque en terme de rapidité dans un environnement Web le fait que toutes les variables ou Fonctions Shared soient communes à l'ensemble des utilisateurs. Je pense notamment aux problèmes d'accès simultanés. Pouvez vous me confirmer ?
 
 
Ah juste pour info, en VB.NET, nous avons aussi du Static, mais ça représentation est quelque peu différente ;).


Message édité par Gfreeman le 11-03-2005 à 23:29:11
Reply

Marsh Posté le 11-03-2005 à 23:24:11   

Reply

Marsh Posté le 12-03-2005 à 03:57:14    

rapidité dans un environnement web ?  
 
tu veux dire plus de 100 appels par seconde ? car en dessous... je vois pas le soucis


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 12-03-2005 à 10:44:08    

Oui par exemple.

Reply

Marsh Posté le 12-03-2005 à 15:09:28    

je vois pas le pb. tout est en mémoire avec .NET donc plus rapide que tant, on peut pas
 
C'est pour quel site ? :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed