Generic, List(T)

Generic, List(T) - C#/.NET managed - Programmation

Marsh Posté le 07-12-2009 à 14:51:13    

Bonjour,
 
1) je débute dans l'étude du c# et je ne comprend pas cette fonction (msdn : http://msdn.microsoft.com/fr-fr/li [...] 85).aspx). On a l'impression que la fonction s'appelle elle meme. Quelqu'un peut-il m'expliquer comment ce marche ?
 
public int CompareTo(object obj) {
            if(obj is Temperature) {
                Temperature temp = (Temperature) obj;
                return m_value.CompareTo(temp.m_value);
            }
            throw new ArgumentException("object is not a Temperature" );    
        }
 
2) Comment fonctionne le tri avec une liste générique List(T).Sort(), quel est la logique du déroulement de l'appelle
 
Merci d'avance

Reply

Marsh Posté le 07-12-2009 à 14:51:13   

Reply

Marsh Posté le 07-12-2009 à 16:24:34    

Merci d'me corriger si je me trompe, j'suis plutôt débutant en C#

 

1) D'un côté, tu as une fonction associée à ton objet ; de l'autre, la fonction associée à ce que je suppose être un int. Donc ce n'est pas la même fonction : tu as sans doute remarqué que tu pouvais définir plusieurs fois le même nom de fonction, avec des arguments différents.

 

Dans le code posté, on compare deux Temperateure par rapport à Temperature.m_value, y a pas de scandale.

 

2) Pour faire des tris de listes, on m'a filé ce bout de code :

 

Tu disposes d'une liste d'objets List<monObjet> maListe

 

monObjet est une classe avec comme propriétés id et lib. Si tu veux faire le tri sur lib :

 

maListe.OrderBy(monobjet => monobjet.lib).ToList<monObjet>();

 

Note bien la différence entre monobjet et monObjet : monobjet est une instance de la classe monObjet, qu'on n'a pas besoin de déclarer.

 

D'ailleurs, si qqun a mieux, j'suis preneur :o


Message édité par Fred999 le 07-12-2009 à 16:25:35
Reply

Marsh Posté le 08-12-2009 à 10:08:31    

Bonjour à tous,
 
D'abord un grand merci à vous deux pour ces explications. A leurs lectures, d'autres questions me sont venues :  
 
1) ou est code la fonction .Sort().  
 
2) D'apres ce que vous avez ecrit, cette fonction compare un à un l'ensemble des élément de List<T>, alors pourquoi passer en parametre T1 et T2 et pas tout les T ? La fonction .Sort () ne sait elle pas reconnaitre toute seule l'ensemble des éléments de l'objet List<> auquelle elle est rattachée ?
 
3) j'ai vu qu'il était possible de passer en parametre de .Sort() une fonction, je ne vois pas comment se déroule l'algo de .Sort() dans ce cas la
 
Merci par avance
 
cprdev

Reply

Marsh Posté le 09-12-2009 à 11:24:01    

Encore merci pour toutes ces explications qui m'ont bien aidé
 
je ne voudrais pas abuser mais j'ai deux points dans mon apprentissage du C# qui m'echappe encore un peu
 
1) Je n'ai pas trouvé un seul exemple clair et concret de l'utilité des interfaces (j'ai parcouru ce forum mais les réponses proposées reste flou pour moi)
 
2) Delegate : quand les utiliser et quel est leur utilité.
 
3) Comment décide-t-on de passer en argument une fonction (delegate, anonyme) plutôt que de l'écrire comme dans le corps de la classe comme les autres
 
Merci par avance
 
cprdev

Reply

Marsh Posté le 09-12-2009 à 11:53:17    

1) Aucune idée (de l'intérêt d'être lâché dans la nature sur un projet :o)
 
2) Chez nous, on s'en sert pour communiquer entre deux forms, avec une form qui pourra être appelée de plusieurs endroits de l'appli : on définit dans la forme appelante les fonctions de la couche métier qui vont être appelées dans la form appelée. Dans la form appelée, on ne se sert alors que des fonctions delegate.

Reply

Sujets relatifs:

Leave a Replay

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