2009-08-02 56 views
3

在下面的代码中,我们的字典的类型是<int, Customer>,但是我怎么知道客户的类型是什么?由于我们是Customer cust1 = new Customer(1,“Cust 1”),因此Customer看起来像是一个字符串。 .... im confused ...关于C#通用集合的问题

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

如果您有任何其他问题,请随时提问......看起来您可能对面向对象或某种性质有点新的东西。 – Polaris878 2009-08-02 16:15:07

回答

8

A Customer对象是类型Customer,即使它由intstring组成。当你打电话给Customer cust1 = new Customer(1, "Cust 1");,那真的是说“让我成为由整数1和字符串Cust 1组成的Customer的对象”

6

Customer的类型是Customer。 A class是用户定义的类型,可以在命名字段中存储其他类型(其他类型的类型为struct)。

传递字符串的地方称为构造函数 - 一种设置新对象的特殊方法。这里它接受一个字符串并将其存储为客户的名字。

+0

不是其他种类的类型:接口,枚举和委托也是所有类型。 – 2009-08-02 21:34:32

+0

谢谢 - 编辑清晰。 – 2009-08-02 22:05:50

0

您在本例中的Customer表示只是一个ID和一个名称。

你可以用很多东西代表它,作为一个ID并为你的案例命名。

引用的示例只是对构造函数的调用,您可以在其中通知该特定客户的ID和名称。