3 Stimmen

Frage zu C# Generic Collection

Im folgenden Code ist der Typ unseres Dictionarys <int, Customer> aber woher weiß ich, um welchen Kundentyp es sich handelt? Es scheint, wie Kunde ist ein String hier, da wir Kunde cust1 = new Customer(1, "Cust 1"); .... im verwirrt...

 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);
}

8voto

Polaris878 Punkte 36249

A Customer Objekt ist Typ Customer auch wenn sie aus einer int et un string . Wenn Sie anrufen Customer cust1 = new Customer(1, "Cust 1"); was in Wirklichkeit bedeutet: "Mach mir ein Objekt des Typs Customer die aus der ganzen Zahl 1 und der Zeichenkette "Cust 1" besteht

6voto

Daniel Earwicker Punkte 111630

Die Art der Customer es Customer . A class ist ein benutzerdefinierter Typ, der andere Typen in benannten Feldern speichern kann (die andere Art von Typ ist ein struct ).

Der Ort, an dem eine Zeichenkette übergeben wird, wird Konstruktor genannt - eine spezielle Methode, die ein neues Objekt einrichtet. Hier wird eine Zeichenkette akzeptiert und als Name des Kunden gespeichert.

0voto

Samuel Carrijo Punkte 16743

Ihre Darstellung von Customer in dem Beispiel ist nur eine ID und ein Name.

Sie können es mit vielen Dingen darstellen, z.B. mit einer ID und dem Namen, den Sie für diesen Fall gewählt haben.

Das zitierte Beispiel ist nur ein Aufruf des Konstruktors, in dem Sie die ID und den Namen des jeweiligen Kunden angeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X