C# string 定义的内容不能传参?必须out string吗?请进来看代码

publicstaticstringGetHtml(stringURL){WebRequestwrt;wrt=WebRequest.Create(URL);wrt.Cre... public static string GetHtml(string URL)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;
wrp = wrt.GetResponse();
return new StreamReader(wrp.GetResponseStream(), Encoding.UTF8).ReadToEnd();
}
public static string GetHtml(string URL, out string cookie)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;

wrp = wrt.GetResponse();

string html = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8).ReadToEnd();
cookie = wrp.Headers.Get("Set-Cookie");
return html;

另外,这个类中GetHtml被定义了多次,附带不同的参数,为什么要多次定义,定义一次不行吗?
展开
 我来答
匿名用户
2013-06-05
展开全部
以上代码叫做重载,
就是说方法名相同,而参数个数或者参数类型不同,就叫做重载。
用相同的方法名,传入不同的参数可以使方法清晰,更容易读懂,而且便于维护(修改)。
你上面的第二个方法,传入一个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盘
总结来说,当遇到重载时,不一样的参数如果可以用来判断,或者说,可以做为区分重载的标记,那么就可以利用重载时不一样的参数来,将重载地方法合并。
当然以上是一些简单的重载合并,如果方法十分复杂,还是比较提倡使用重载的,因为便于维护。
匿名用户
2013-06-05
展开全部
定义了两个是有不同的所需的,根据所需的内容传递不同的参数,这也就是楼上所说的方法重载。你这两个方法返回结果相同,不同之处在于第二个方法多输出一个参数值“cookie”,也就是相当于返回了两个结果,
当你只需要一个结果时,两个方法都可以使用,当然建议使用第一个,同一楼所说保持代码干净,当你需要“cookie”的值时必须使用第二个方法,使用方法,定义两个字符串
string cookie;string html=GetHtml("参数", out cookie); 这时cookie和html分别都有了值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-05
展开全部
函数的重载,不同的需要使用不同的重载函数;
比如第二个就比第一个多一个出参 cookie, 说明函数外部需要用到这个值;而如果不需要用到,直接用第一个函数即可,保持代码干净;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-05
展开全部
这叫做方法重载GetHtml(string URL, out string cookie)重载了GetHtml(string URL)方法这里有一篇文章,可能对你有帮助 http://tech.ddvip.com/2008-09/122095503262410.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式