2009-08-02 7 views
3

Dans le code suivant, le type de notre dictionnaire est <int, Customer>, mais comment savoir quel est le type de client? Il semble que le client est une chaîne ici puisque nous sommes client cust1 = nouveau client (1, "Cust 1"); .... im confus ...Question sur C# Generic Collection

public class Customer 
    { 
     public Customer(int id, string name) 
     { 
      ID = id; 
      Name = name; 
     } 

    private int m_id; 

    public int ID 
    { 
     get { return m_id; } 
     set { m_id = value; } 
    } 

    private string m_name; 

    public string Name 
    { 
     get { return m_name; } 
     set { m_name = value; } 
    } 
} 

Dictionary<int, Customer> customers = new Dictionary<int, Customer>(); 

Customer cust1 = new Customer(1, "Cust 1"); 
Customer cust2 = new Customer(2, "Cust 2"); 
Customer cust3 = new Customer(3, "Cust 3"); 

customers.Add(cust1.ID, cust1); 
customers.Add(cust2.ID, cust2); 
customers.Add(cust3.ID, cust3); 

foreach (KeyValuePair<int, Customer> custKeyVal in customers) 
{ 
    Console.WriteLine(
     "Customer ID: {0}, Name: {1}", 
     custKeyVal.Key, 
     custKeyVal.Value.Name); 
} 
+0

Si vous avez d'autres questions comme celle-ci, n'hésitez pas à demander ... il semble que vous soyez peut-être un peu nouveau à la POO ou quelque chose de ce genre. – Polaris878

Répondre

8

Un objet Customer est de type Customer même s'il se compose d'un int et d'un string. Lorsque vous appelez Customer cust1 = new Customer(1, "Cust 1"); c'est vraiment dire "faites-moi un objet de type Customer qui se compose de l'entier 1 et chaîne Cust 1"

+0

Belle réponse laconique. :) –

6

Le type de Customer est Customer. Un class est un type défini par l'utilisateur qui peut stocker d'autres types dans des champs nommés (l'autre type de type est un struct).

L'endroit où une chaîne est passée est appelé un constructeur - une méthode spéciale qui configure un nouvel objet. Ici, il accepte une chaîne et la stocke comme nom du client.

+0

Pas l'autre type de type: les interfaces, les énumérations et les délégués sont tous les types. –

+0

Merci - édité pour plus de clarté. –

0

Votre représentation du client dans l'exemple est juste un ID et un nom.

Vous pouvez le représenter avec beaucoup de choses, étant un identifiant et nommez-le choisi pour ce cas. L'exemple cité est juste un appel au constructeur, où vous informez l'ID et le nom de ce client spécifique.