Collection d'objet - Conception

Collection d'objet - Conception - C#/.NET managed - Programmation

Marsh Posté le 01-12-2007 à 23:23:32    

Bonjour à tous,  
 
Petite question ultra rapide mais je veux etre sur :
 
J'ai deux classes :
- Unite
- Schema
 
 
Je fais ma classe page normalement :
 
public class Unite{ } avec mes attributs Titre, ChefUnite ...
 
et ma seconde classe :
 
public class Schema {} avec mes attribus AutheurSchma,Date de création, ... ET une collection d'unités
 
Question : Comment je modelise dans ma classe cette collection ???
 
 
Merci de vos conseils
 
 Cordialement,

Reply

Marsh Posté le 01-12-2007 à 23:23:32   

Reply

Marsh Posté le 02-12-2007 à 21:06:55    

le mieux je pense est d'utiliser les génériques
 
synthaxe:
 
ArrayList list = new ArrayList();
public void addUnite<T>(T value)
{
   list.add(T);
}
 
ou d'autres synthaxe utilisant les génériques de façon semblable.  

Reply

Marsh Posté le 03-12-2007 à 10:54:15    

Ou plus simplement :
ArrayList<Unite> list = new ArrayList<Unite>();
...
list.Add(une variable de type Unite);
...

Message cité 1 fois
Message édité par Xas le 05-12-2007 à 23:58:20
Reply

Marsh Posté le 03-12-2007 à 10:56:26    

Xas a écrit :

Ou plus simplement :
ArrayList<Unite> list = new ArrayList<Unite>();
...
list.Add(une variable de type Unite);
...


+1, avec une paire de méthodes pour ajouter ou retirer une unité d'un schéma


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-12-2007 à 16:14:48    

D'ailleurs c'est quoi la différence entre "ArrayList<T>" et "List<T>" ?
Moi j'utilise tout le temps "List<T>".

Reply

Marsh Posté le 04-12-2007 à 16:26:12    

L'interface c'est pas IList plutot...
Sinon le ArrayList c'est parce que... une simple habitude d'utilisation intensive prises sous 1.1...


---------------
H. - 48h en fiat et j'ai déjà perdu la maitrise de mon argent
Reply

Marsh Posté le 04-12-2007 à 16:26:26    

MagicBuzz a écrit :

D'ailleurs c'est quoi la différence entre "ArrayList<T>" et "List<T>" ?
Moi j'utilise tout le temps "List<T>".


(putain mais quelle daube la MSDN [:petrus75])

 

D'après ce que j'ai pu comprendre, ArrayList est la classe originelle (1.0), List est la version Generic (2.0). Donc il semblerait que "ArrayList<T>" ne soit pas censé fonctionner.

 

Donc List est type-safe et potentiellement mieux optimisé que ArrayList.

Xas a écrit :

L'interface c'est pas IList plutot...


Si, Collection dans un cas et Collection.Generic dans l'autre, j'ai confusionné avec java.


Message édité par masklinn le 04-12-2007 à 16:28:34

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-12-2007 à 16:27:45    

-- Ah ok. Donc moi y'en a bon pour un coup :D --
 
D'après un test rapide sous VS2005, c'est surtout que :
 
ArrayList n'est pas générique. On peut ajouter/supprimer des valeurs de type "object". C'est donc une collection d'éléments non typées (ce qui inclu aussi des types valeur).
Alors que List<T> est donc une liste générique typée : une fois le type défini, on ne peut y mettre que des éléments du type choisi (ce qui inclu aussi les types valeur).
 
Donc ArrayList c'est cool pour planter son programme, d'autant qu'il dispose d'une méthode Sort(), mais aussi Insert() et autres méthodes succeptibles de modifier l'ordre des éléments. Donc on a vite fait de plus trop savoir ce qu'on tente de lire, et commencer à faire de la choucroute avec de la bétrave.


Message édité par MagicBuzz le 04-12-2007 à 16:34:25
Reply

Marsh Posté le 04-12-2007 à 16:46:13    

Il me semble que la version générique ArrayList<T> existerait bien mais qu'elle ne serait qu'un synonyme alias de List<T>..
 
Comme je suis à peu près sur d'avoir foutu des ArrayList<T> chez moi, je reste dubitatif...
Faut que je vois ça ce soir..


Message édité par Xas le 05-12-2007 à 23:59:01
Reply

Marsh Posté le 04-12-2007 à 16:56:54    

En tout cas, il n'est pas dans "System.Collections.Generic", et celui qui est dans "System.Collections" fonctionne avec des "object".

Reply

Sujets relatifs:

Leave a Replay

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