你是如何理解 Overload 的?

解决方案 »

  1.   

    Employee(int autoID) //返回某个人员的信息
    Employee(int deptID) //返回属于某部门的全部人员信息
    这样等同于重载一种方法
      

  2.   

    本帖最后由 caozhy 于 2011-04-03 08:38:32 编辑
      

  3.   

    那何苦这样呢,呵呵
    Employee(int id,bool isdept) {
       
    }
      

  4.   

    Employee(int autoID)
    只用这一个,
    if(autoid==0)
    {返回全部
    }
    if(autoid==1)
    {返回某个人
    }
    if(autoid==2)
    {
    返回特定
    }
    然后调用时输入数字参数进行返回重载是指参数数量或类型不同与你的问题不一样
      

  5.   

    我是来对标题吐槽的—— [向CSharp提问],我点击一看CSharp的个人空间,是个专家分才100的小白,而且从未来过.NET专区,你去问他吧,我恕不远送。
      

  6.   

    重载---是参数的类型和个数不一样,从这个角度上讲参数没区别(你的类型和个数都一样)可以这样:Employee(int ID,bool b) 当b为true时返回某个人员的信息,当为false时返回属于某部门的全部人员信息当然也可以向你说的改方法名了。
      

  7.   

    是吗,2000年到现在才100专家分,都成精了,而且从未在来过.NET区,向他提问有用吗?
      

  8.   

    Employee(int autoID) //返回某个人员的信息
    Employee(int deptID) //返回属于某部门的全部人员信息比如:若 deptID 小于100, autoID >= 100,那么程序中可以根据id的大小判断要执行的操作!要不 Employee(int id, IdType idType);public enum IdType
    {
        deptID,
        PersonID
    }
      

  9.   

    其实对这个问题,简单的方法加个bool型参数区分一下,而规范的做法是定义个枚举,然后加上个枚举参数。
    比如ado.net中执行ExecuteNonQuery方法,而一个参数可以是sql语句,也可以是存储过程名,封装时就可以加个参数,用那个枚举。
      

  10.   

    本帖最后由 caozhy 于 2011-04-03 17:51:27 编辑
      

  11.   

    两种方案,一种是改方法名字,EmployeeById(int autoID) EmployeeByDepId(int deptID)
    另一种,设置两个参数,后面设置一个枚举来标识主键类别
    Employee(int ID, PkType type)
    publick enum PkType
    {
        Employee, //表示员工
        Department  //表示部门
    }
    //调用
    Employee(123, PkType.Employee)
      

  12.   

    C++ 区的建议是也可以给参数换个类型么,比如short、char.....const
      

  13.   

    本帖最后由 caozhy 于 2011-04-03 17:54:35 编辑
      

  14.   

    本帖最后由 caozhy 于 2011-04-03 17:56:20 编辑
      

  15.   


    我举个例子吧,原先我用C语言给公司的硬件封装通讯协议
    可程序总是莫名其妙的出错,后来同事拷贝给我5行代码
    加上之后程序就一切OK,不加就偶尔出错
    就那5行代码我看了1个多月没弄明白
    过了有1-2年,我有了一些经验,再去看那段代码的时候,才终于领悟就是说 有时候提问的人根本没有刨根问底的能力
    这时候还要让他搞清基础再提实际问题
    怎么可能?
      

  16.   

     方法名称相同返回类型不同就ok了,这就是C#中的多态的表现,如果不想使用重载的话,那就方法名称改变就可以了,注意这一点:重载的:方法名称相同,返回类型不同,还有一个参数不同
      

  17.   

    Employee() //无条件 返回全部人员
    Employee(int autoID) //返回某个人员的信息
    Employee(string deptID) //返回属于某部门的全部人员信息
      

  18.   

    Employee(int autoID) //返回某个人员的信息
    Employee(int deptID) //返回属于某部门的全部人员信息兄弟,你也太有才了吗?Employee(int id) 
      

  19.   

    用枚举把public enum EmployeeType
    {
        所有,
        某人, 
        某部门
    }
    object Employee(EmployeeType type)
    {
        //  TODO...
    }