Results 1 to 6 of 6

Thread: Help with foreach [Resoloved]

Threaded View

  1. #1

    Thread Starter
    Fanatic Member Bombdrop's Avatar
    Join Date
    Apr 2001
    Location
    St Helens, England, UK
    Posts
    667

    Resolved Help with foreach [Resoloved]

    Now I come from VB6 and one of the fetures I loved was a collection class now I can do it in C# please code below but what i wish to know is why i have to create a new instance of the class before i can add it to my collection (ArrayList) i never had to do this in VB6, what seems to happen is the last entered object overwrites all other data.

    Code:
    /*
    * Created by SharpDevelop.
    * User: BombDrop
    * Date: 13/09/2004
    * Time: 12:57
    * 
    */
    using System;
    using System.Collections;
    
    namespace DefaultName
    {
    public class Person
    
    {
    private int age;
    private string name;
    
    public string Name {
    get {
    return name;
    }
    set {
    name = value;
    }
    }
    public int Age {
    get {
    return age;
    }
    set {
    age = value;
    }
    }
    
    
    public Person()
    {
    }
    
    
    }
    public class Persons : object, IEnumerable, IEnumerator
    {
    private ArrayList arr = new ArrayList();
    private int position=-1;
    
    public Persons()
    {
    }
    
    
    public virtual object Current
    {
    get
    {
    return arr[position];
    }
    }
    
    
    public virtual IEnumerator GetEnumerator()
    {
    return (IEnumerator)this;
    }
    
    
    public virtual void Reset()
    {
    this.position=-1;
    }
    
    
    public virtual bool MoveNext()
    {
    this.position++;
    if (this.position <arr.Count)
    {
    
    return true;
    }
    else
    {
    return false;
    
    }
    
    }
    
    public virtual void Add(Person p )
    {
    arr.Add(p);
    
    }
    }
    class MainClass
    {
    
    public static void Main(string[] args)
    {
    Person p = new Person();
    Persons ps = new Persons();
    
    p.Age=28;
    p.Name="Bomb";
    ps.Add(p);
    
    //p=new Person();
    p.Age=29;
    p.Name="Drop";
    ps.Add(p);
    
    //p=new Person();
    p.Age=30;
    p.Name="BombDrop";
    ps.Add(p);
    try
    {
    foreach(Person me in ps)
    {
    Console.WriteLine(me.Name + " " + me.Age.ToString());
    }
    }
    catch(System.Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    
    
    }
    }
    }
    Thanks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width