Function Shared ou pas ? - C#/.NET managed - Programmation
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)
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
Marsh Posté le 11-03-2005 à 22:52:32
Taz a écrit : y a pas de mot-clé Shared |
c'est du VB .NET
Marsh Posté le 11-03-2005 à 22:58:47
Taz a écrit : ben cat VB alors |
y'a pas de cat VB .NET
Marsh Posté le 11-03-2005 à 23:20:55
ReplyMarsh Posté le 11-03-2005 à 23:24:11
Oui effectivement, c'est du vb.NET
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. |
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 .
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
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 ?
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 ?