以上代码叫做重载,
就是说方法名相同,而参数个数或者参数类型不同,就叫做重载。
用相同的方法名,传入不同的参数可以使方法清晰,更容易读懂,而且便于维护(修改)。
你上面的第二个方法,传入一个out string 类型的参数
这种参数的意思是如果在方法中改变参数的值,那么在调用这个方法的地方传入这个参数的变量的值,也同样改变,例如:
public int other(int temp, out string i)
{
temp = 1;
i = "必须改变值";
return temp;
}
public void Save()
{
string x = "111";
int y = 55;
int z = other(y, out x);
}
如例子,在调用other访法时,必须要改变 out string类型的i参数值,然后才可以调用i参数
如果重载中有这种参数,就最好是写成重载的(多个方法)。
当然,如果重载方法的功能基本相同,要是想写在一起,还是可以的~~
例如:
public static string GetHtml(string URL)
{
URL="c:\"+URL;
return URL;
}
public static string GetHtml(string URL,string temp)//加入temp传入盘符
{
URL=temp+URL;//此时temp代表:C:\ 或者 D:\ 等
return URL
}
这种类型的重载就可以放到一起
public static string GetHtml(string URL,string temp)//加入temp传入盘符
{
if(temp!="")
{
URL=temp+URL;//此时temp代表:C:\ 或者 D:\ 等
}
else
{
URL="c:\"+URL;
}
//即 当定义了盘符时,地址中使用自定义的盘符,若没有定义盘符,则使用默认的C盘
return URL
}
调用时如果没有定义盘符则可以写成class。GetHtml("目录或文件名","");//使用默认的c盘
总结来说,当遇到重载时,不一样的参数如果可以用来判断,或者说,可以做为区分重载的标记,那么就可以利用重载时不一样的参数来,将重载地方法合并。
当然以上是一些简单的重载合并,如果方法十分复杂,还是比较提倡使用重载的,因为便于维护。
定义了两个是有不同的所需的,根据所需的内容传递不同的参数,这也就是楼上所说的方法重载。你这两个方法返回结果相同,不同之处在于第二个方法多输出一个参数值“cookie”,也就是相当于返回了两个结果,
当你只需要一个结果时,两个方法都可以使用,当然建议使用第一个,同一楼所说保持代码干净,当你需要“cookie”的值时必须使用第二个方法,使用方法,定义两个字符串
string cookie;string html=GetHtml("参数", out cookie); 这时cookie和html分别都有了值。
函数的重载,不同的需要使用不同的重载函数;
比如第二个就比第一个多一个出参 cookie, 说明函数外部需要用到这个值;而如果不需要用到,直接用第一个函数即可,保持代码干净;
这叫做方法重载GetHtml(string URL, out string cookie)重载了GetHtml(string URL)方法这里有一篇文章,可能对你有帮助 http://tech.ddvip.com/2008-09/122095503262410.html