C# Class ou Structure ?

Soap

Membre
Inscrit
12 Avril 2017
Messages
72
Reactions
2
#1
Bonjour tout le monde, je post ce sujet pour savoir dans quel(s) cas une structure sera plus appréciable qu'une class.
J'ai conscience que la structure n'implémente pas la notion d'héritage et que en mémoire il est directement stocké sur la pile a contrario de la class qui elle contient une réf sur la pile pour pouvoir chercher les données sur le tas. Mon problème est donc de vouloir créer des structures trop conséquentes qui finalement ralentisse les performances plus qu'autre chose.
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#2
J'avais lu que les Struct n'étaient utiles que pour les petites structures, du genre la classe point (int X, int Y) et qu'il était tout de même préférable de ne pas y toucher et de déclarer des classes. Si ça peut t'avancer .. :p
 

Soap

Membre
Inscrit
12 Avril 2017
Messages
72
Reactions
2
#3
J'avais lu que les Struct n'étaient utiles que pour les petites structures, du genre la classe point (int X, int Y) et qu'il était tout de même préférable de ne pas y toucher et de déclarer des classes. Si ça peut t'avancer .. :p
Merci de la réponse, sa m'est déjà plus clair.
 
Inscrit
2 Juin 2016
Messages
82
Reactions
3
#4
Yo,

Une structure (défini en tant que tel par MS en C#) est un ensemble de données géré par le tas.

Pourquoi utiliser une structure:
-données petite (inférieure à 16 octets)
-immutable (ne peut changer après le new, propriétés/champs en lecture seule)
-besoin de la sémantique de passage par valeur

Bonnes pratiques:
-utiliser une classe

Les cas où on doit utiliser des structures en place de class sont vraiment beaucoup trop rare pour que tu t'y intéresses.

Morale de l'histoire: toujours utiliser des classes, jamais des structure

DrBrook.
 

Soap

Membre
Inscrit
12 Avril 2017
Messages
72
Reactions
2
#5
Yo,

Une structure (défini en tant que tel par MS en C#) est un ensemble de données géré par le tas.

Pourquoi utiliser une structure:
-données petite (inférieure à 16 octets)
-immutable (ne peut changer après le new, propriétés/champs en lecture seule)
-besoin de la sémantique de passage par valeur

Bonnes pratiques:
-utiliser une classe

Les cas où on doit utiliser des structures en place de class sont vraiment beaucoup trop rare pour que tu t'y intéresses.

Morale de l'histoire: toujours utiliser des classes, jamais des structure

DrBrook.
Plop, je m'y tiendrais aux bonnes pratiques en laissant de coté les struct merci.
 
Haut Bas