Καλησπέρα σε ολους.
Ψάχνοντας τις τεχνικές που κρύβουν τα Collections, και δημιουργώντας ένα παράδειγμα δικό μου,
ενώ για κάποιο λόγο δεν βρίσκω κάποιο λάθος, δεν μπορώ να προβάλλω τα στοιχεία που κάνω Add().
Παραθέτω τον κώδικα ποιο κάτω αν θέλει κάποιος να μου υποδείξει τι δεν κάνω σωστά! ή πως θα έπρεπε να
κατευθυνθώ.
public class Person
{
private string name;
private int age;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public class People : DictionaryBase
{
public void Add(string nameID, Person newPerson)
{
Dictionary.Add(nameID, newPerson);
}
public void Remove(string nameID)
{
Dictionary.Remove(nameID);
}
public Person this[string nameID]
{
get
{
return (Person)Dictionary[nameID];
}
set
{
Dictionary[nameID] = value;
}
}
public new IEnumerator GetEnumerator()
{
foreach (object Person in Dictionary.Values)
yield return (Person)Person;
}
}
class Program
{
static void Main(string[] args)
{
People peopleCollection = new People();
Person newPerson = new Person();
Console.WriteLine("Give 3 Person names and ages.");
for (int i = 1; i <= 3; i++)
{
Console.Write("{0} Name : ", i);
newPerson.Name = Console.ReadLine();
Console.Write("{0} Age : ", i);
newPerson.Age = Convert.ToInt32(Console.ReadLine());
peopleCollection.Add(newPerson.Name, newPerson);
}
Console.WriteLine("All Info about people collections.");
foreach (People p in peopleCollection)
{
Console.WriteLine("Name : {0}\nAge : {1}",
p.Name, p.Age);
}
Console.ReadKey();
}
}Είναι ένα απλό παράδειγμα που χρησιμοποιεί την DictionaryBase για να έχω την δυνατότητα ενός (string key) στο Collection.
Τι είναι αυτό που δεν καταλαβα καλά και κάνω λάθος όταν ζητάω με την foreach να μου δείξει όλα τα object info?. Αφού
εχώ φτιάξει ένα Iterator. Έχω μια υποψία ότι κάτι δεν γίνεται καλά στην peopleCollection.Add(newPerson.Name, newPerson);
αλλά δεν ξέρω γιατί μετά χτυπάει αν του δώσω την new keyword!!! σε κάθε αντικείμενο.
Ευπρόσδεκτη κάθε υπόδειξη και σχόλιο.
Ευχαριστώ.