Bonjour,

Je cherche à définir une fonction convertissant une instance de la classe Produit en TreeNode pour être ensuite affiché dans un TreeView.
J'ai besoin de 2 fonctions, l'une convertissant un produit en un treenode et l'autre convertissant plusieurs produit en plusieurs treenode.
d'après vous parmi les 3 solutions suivantes, laquelle est réellement une surcharge ?

Solution 1:
La méthode ProduitToTreeNode est surchargée, la première convertit un produit en un treenode et l'autre utilise la première pour convertir plusieurs produits en plusieurs treenode. Les 2 méthodes ne font pas rigoureusement la même chose, je me demande donc si elle doit être surchargée.
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public TreeNode ProduitToTreeNode(Produit pdt)
{
    TreeNode tree = new TreeNode(pdt.Reference);
    tree.Name = pdt.Identifiant.ToString();
    return tree;
}
 
public TreeNode[] ProduitToTreeNode(Produit[] pdtArray)
{
    TreeNode[] trees = new TreeNode[pdtArray.Length];
 
     for (int i = 0; i<pdtArray.Length; i++)
     {
          trees[i] = ProduitToTreeNode(pdtArray[i]);
     }
 
     return trees;
}

Solution 2:
Pour cette solution, la méthode ProduitToTreeNode n'est pas surchargée.
Les 2 méthodes n'ont plus le même nom car je me dis que ne faisant pas rigoureusement la même chose elles ne peuvent avoir le même nom.

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public TreeNode ProduitToTreeNode(Produit pdt)
{
    TreeNode tree = new TreeNode(pdt.Reference);
    tree.Name = pdt.Identifiant.ToString();
    return tree;
}
 
public TreeNode[] ProduitToTreeNodeArray(Produit[] pdtArray)
{
    TreeNode[] trees = new TreeNode[pdtArray.Length];
 
     for (int i = 0; i<pdtArray.Length; i++)
     {
          trees[i] = ProduitToTreeNode(pdtArray[i]);
     }
 
     return trees;
}

Solution 3:
Et enfin la dernière solution qui me semble rigoureusement plus être une sucharge.
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public TreeNode ProduitToTreeNode(Produit pdt)
{
    return ProduitToTreeNode(new Produit[] { pdt})[0];
}
 
public TreeNode[] ProduitToTreeNode(Produit[] pdtArray)
{
    TreeNode[] trees = new TreeNode[pdtArray.Length];
 
     for (int i = 0; i<pdtArray.Length; i++)
     {
          Produit pdt = pdtArray[i];
          trees[i] = new TreeNode(pdt.Reference);
          trees[i].Name = pdt.Identifiant.ToString();          
     }
 
     return trees;
}

Merci d'avance pour vos conseils.
Bye