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值处理。

  • 相关阅读:
    JAVA线程池管理及分布式HADOOP调度框架搭建
    技术人员如何创业《二》 合伙人的模式
    JavaScript中的运动数学函数(持续更新)
    JavaScript中的加号
    JavaScript 函数绑定 Function.prototype.bind
    基于C#的波形显示控件的实现[附完整源码下载]
    JavaScript中的声明提升
    JavaScript & HTML5 Canvas 概览 更新时间201404111805
    《编写高质量代码——Web前端开发修炼之道》读后随笔
    B树/B+树/二叉搜索树/AVL树/红黑树
  • 原文地址:https://www.cnblogs.com/ldp615/p/1560543.html
Copyright © 2011-2022 走看看