zoukankan      html  css  js  c++  java
  • .Net 相等性的测试题目,看你基础牢不牢

    有这么一个简单类People:

        class People
        {
            
    public int Id { getset; }
            
    public string Name { getset; }

            
    public override string ToString()
            {
                
    return string.Format("Id: {0}; Name: {1}", Id, Name);
            }
        }

    请看以下代码,给出b0~b6的值(b6的相关代码不熟悉的话,可以只给出b0~b5的值):

        private static void Test()
        {
            People[] ps0 
    = new People[]{
                
    new People{ Id=1, Name = "aaa"},
                
    new People{ Id=2, Name = "bbb"},
                
    new People{ Id=3, Name = "ccc"}
            };
            List
    <People> ps1 = new List<People>(ps0);
            Collection
    <People> ps2 = new Collection<People>(ps1);
            IEnumerable
    <People> ps3 = YeildRet(ps0);
            Dictionary
    <People, string> dict = ps0.ToDictionary(p=>p, p=>p.Name);

            People p0 
    = new People { Id = 1, Name = "aaa" };

            
    //
            bool b0 = p0 == ps0[0];
            
    bool b1 = p0.Equals(ps0[0]);
            
    //
            bool b2 = ps0.Contains(p0);
            
    bool b3 = ps1.Contains(p0);
            
    bool b4 = ps2.Contains(p0);
            
    bool b5 = ps3.Contains(p0);
            
    //
            bool b6 = dict.ContainsKey(p0);
        }

        
    private static IEnumerable<People> YeildRet(People[] peoples)
        {
                
    yield return peoples[0];
                
    yield return peoples[1];
                
    yield return peoples[2];
        }

     下面会把People类逐步改进,同样请给出每个版本的b0~b6的值,一个版本一个版本做,做完一个版本才能展开下一个版本。不要作弊奥!

    People版本二

    再改进,

    People版本三

    再改进

    People版本四

    再改进:

    People版本五

     说明:代码仅供测试用,没有进行null值处理。

  • 相关阅读:
    [PHP] Laravel中env函数返回null原因
    [PHP] laravel8 发送通知邮件
    [PHP] hyperf代码热更新-hyperf-watch
    [日常]wps插入页眉页脚
    [linux] du查找数据大的目录
    [PHP] new static()和new self()的区别
    [docker] docker删除容器
    [docker] docker删除镜像
    [javascript] js删除数组中的元素
    [PHP] hyperf框架代码热更新
  • 原文地址:https://www.cnblogs.com/ldp615/p/1560543.html
Copyright © 2011-2022 走看看