• C# List<> 泛型中遍历不同类型


    List <Person> person = new List <Person>(); 
    Person p1 
    = new Person("张三"26, Gender.Male, "看书"); 
    Person p2 
    = new Person("张四"55, Gender.Male, "钓鱼"); 


    List 
    <Student> stu = new List <Student>(); 
    Student s1 
    = new Student("李四"26, Gender.Male, "电影""S2T11"); 
    Student s2 
    = new Student("李五"20, Gender.Male, "电脑""S2T11"); 


    List 
    <Teacher> tch = new List <Teacher>(); 
    Teacher t1 
    = new Teacher("王五"26, Gender.Male, "音乐""S1,S2,Y2"); 
    Teacher t2 
    = new Teacher("王六"30, Gender.Male, "音乐""S1,S2"); 

    person.Add(p1); 
    person.Add(p2); 
    person.Add(s1); 
    person.Add(s2); 
    person.Add(t1); 
    person.Add(t2); 
    /////////////用for遍历出Student类型和Teacher类型//////////////////
    for (int i = 0; i < person.Count; i++

    if (person[i] is Student) 

    ((Student)person[i]).SayHi(); 

    else if (person[i] is Teacher) 

    ((Teacher)person[i]).SayHi(); 




    ========================================
    用foreach来遍历出Student类型和Teacher类型   替换上面for的遍历
    ========================================


    基类 Person  子类 Student Teacher


    static void Main(string[] args) 
            { 
              
                List 
    <Person> person = new List <Person>(); 
                Person p1 
    = new Person("张三"26, Gender.Male, "看书"); 
                Person p2 
    = new Person("张四"55, Gender.Male, "钓鱼"); 


                Person s1 
    = new Student("李四"26, Gender.Male, "电影""S2T11"); 
                Person s2 
    = new Student("李五"20, Gender.Male, "电脑""S2T11"); 


                Person t1 
    = new Teacher("王五"26, Gender.Male, "音乐""S1,S2,Y2"); 
                Person t2 
    = new Teacher("王六"30, Gender.Male, "音乐""S1,S2"); 

                person.Add(p1); 
                person.Add(p2); 
                person.Add(s1); 
                person.Add(s2); 
                person.Add(t1); 
                person.Add(t2); 

                
    //for (int i = 0; i < person.Count; i++) 
                
    //
                
    //    if (person[i] is Student) 
                
    //    { 
                
    //        ((Student)person[i]).SayHi(); 
                
    //    } 
                
    //    else if (person[i] is Teacher) 
                
    //    { 
                
    //        ((Teacher)person[i]).SayHi(); 
                
    //    } 
                
    //
                foreach (Person p in person) 
                { 
                    
    if (p is Student) 
                    { 
                        p.SayHi(); 
                    } 
                    
    else if (p is Teacher) 
                    { 
                        p.SayHi(); 
                    } 
                } 


              Console.ReadLine(); 
            }


    或者:这样。。。。。。。。。。

     if (p is Student)
                    {
                        p.SayHi();
                    }
                    
    else if (p is Teacher)
                    {
                        p.SayHi();
                    } 

  • 相关阅读:
    redis主从同步
    redis持久化
    redis发布订阅
    mariadb主从复制,
    nginx+uwsgi+django+virtualenv+supervisor发布web服务器
    Oracle 11gR2 RAC Installation on Oracle Linux 6.5
    ORA-1555 causes and solutions
    Linux实时查看日志的四种命令详解
    Linux查看日志常用命令
    oracle 11g 静默安装
  • 原文地址:https://www.cnblogs.com/Fooo/p/1370768.html
Copyright © 2020-2023  润新知