问个方法重载的问题 你是如何理解 Overload 的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Employee(int autoID) //返回某个人员的信息Employee(int deptID) //返回属于某部门的全部人员信息这样等同于重载一种方法 本帖最后由 caozhy 于 2011-04-03 08:38:32 编辑 那何苦这样呢,呵呵Employee(int id,bool isdept) { } Employee(int autoID)只用这一个,if(autoid==0){返回全部}if(autoid==1){返回某个人}if(autoid==2){返回特定}然后调用时输入数字参数进行返回重载是指参数数量或类型不同与你的问题不一样 我是来对标题吐槽的—— [向CSharp提问],我点击一看CSharp的个人空间,是个专家分才100的小白,而且从未来过.NET专区,你去问他吧,我恕不远送。 重载---是参数的类型和个数不一样,从这个角度上讲参数没区别(你的类型和个数都一样)可以这样:Employee(int ID,bool b) 当b为true时返回某个人员的信息,当为false时返回属于某部门的全部人员信息当然也可以向你说的改方法名了。 是吗,2000年到现在才100专家分,都成精了,而且从未在来过.NET区,向他提问有用吗? Employee(int autoID) //返回某个人员的信息Employee(int deptID) //返回属于某部门的全部人员信息比如:若 deptID 小于100, autoID >= 100,那么程序中可以根据id的大小判断要执行的操作!要不 Employee(int id, IdType idType);public enum IdType{ deptID, PersonID} 其实对这个问题,简单的方法加个bool型参数区分一下,而规范的做法是定义个枚举,然后加上个枚举参数。比如ado.net中执行ExecuteNonQuery方法,而一个参数可以是sql语句,也可以是存储过程名,封装时就可以加个参数,用那个枚举。 本帖最后由 caozhy 于 2011-04-03 17:51:27 编辑 两种方案,一种是改方法名字,EmployeeById(int autoID) EmployeeByDepId(int deptID)另一种,设置两个参数,后面设置一个枚举来标识主键类别Employee(int ID, PkType type)publick enum PkType{ Employee, //表示员工 Department //表示部门}//调用Employee(123, PkType.Employee) C++ 区的建议是也可以给参数换个类型么,比如short、char.....const 本帖最后由 caozhy 于 2011-04-03 17:54:35 编辑 本帖最后由 caozhy 于 2011-04-03 17:56:20 编辑 我举个例子吧,原先我用C语言给公司的硬件封装通讯协议可程序总是莫名其妙的出错,后来同事拷贝给我5行代码加上之后程序就一切OK,不加就偶尔出错就那5行代码我看了1个多月没弄明白过了有1-2年,我有了一些经验,再去看那段代码的时候,才终于领悟就是说 有时候提问的人根本没有刨根问底的能力这时候还要让他搞清基础再提实际问题怎么可能? 方法名称相同返回类型不同就ok了,这就是C#中的多态的表现,如果不想使用重载的话,那就方法名称改变就可以了,注意这一点:重载的:方法名称相同,返回类型不同,还有一个参数不同 Employee() //无条件 返回全部人员Employee(int autoID) //返回某个人员的信息Employee(string deptID) //返回属于某部门的全部人员信息 Employee(int autoID) //返回某个人员的信息Employee(int deptID) //返回属于某部门的全部人员信息兄弟,你也太有才了吗?Employee(int id) 用枚举把public enum EmployeeType{ 所有, 某人, 某部门}object Employee(EmployeeType type){ // TODO...} 解析通讯发过来的一个包 c# 写挂的问题 很是郁闷 如何把ctrl+F4快捷键禁用. 一个简单的表结构问题 vs.net 2003 如何调用VS.net 2005生成的dll?谢谢 vs2010程序如何制作像Office5合一那样的安装包?可以选择安装某些程序,而不是全部安装? 【求助】用HttpWebRequest通过代理,访问https时出错?? 关于多线程界面更新的几个问题。 两个Treeview如何实现这个功能,高手请进!!! !100分求解(不够再加) 关于Tif格式转换为Jpg的问题~~ 急在线求解 dsoframer能否调用Excel中写好的宏?怎么调用? 新手对接口 Interface,理解很吃力,望前辈点拨
Employee(int deptID) //返回属于某部门的全部人员信息
这样等同于重载一种方法
Employee(int id,bool isdept) {
}
只用这一个,
if(autoid==0)
{返回全部
}
if(autoid==1)
{返回某个人
}
if(autoid==2)
{
返回特定
}
然后调用时输入数字参数进行返回重载是指参数数量或类型不同与你的问题不一样
Employee(int deptID) //返回属于某部门的全部人员信息比如:若 deptID 小于100, autoID >= 100,那么程序中可以根据id的大小判断要执行的操作!要不 Employee(int id, IdType idType);public enum IdType
{
deptID,
PersonID
}
比如ado.net中执行ExecuteNonQuery方法,而一个参数可以是sql语句,也可以是存储过程名,封装时就可以加个参数,用那个枚举。
另一种,设置两个参数,后面设置一个枚举来标识主键类别
Employee(int ID, PkType type)
publick enum PkType
{
Employee, //表示员工
Department //表示部门
}
//调用
Employee(123, PkType.Employee)
我举个例子吧,原先我用C语言给公司的硬件封装通讯协议
可程序总是莫名其妙的出错,后来同事拷贝给我5行代码
加上之后程序就一切OK,不加就偶尔出错
就那5行代码我看了1个多月没弄明白
过了有1-2年,我有了一些经验,再去看那段代码的时候,才终于领悟就是说 有时候提问的人根本没有刨根问底的能力
这时候还要让他搞清基础再提实际问题
怎么可能?
Employee(int autoID) //返回某个人员的信息
Employee(string deptID) //返回属于某部门的全部人员信息
Employee(int deptID) //返回属于某部门的全部人员信息兄弟,你也太有才了吗?Employee(int id)
{
所有,
某人,
某部门
}
object Employee(EmployeeType type)
{
// TODO...
}