如何用函数分隔我的编码。
问题描述:
想要解决以下情况...
我尝试过:
i希望用一个函数分隔以下内容,
want solution for below scenario...
What I have tried:
i want to separate following with one function,
HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);
myWebRequest.Accept = "image/*";
myWebRequest.Method = "GET";
然后跟随另一个函数,
And then following with another function,
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
Response.Clear();
Stream receiveStream = myHttpWebResponse.GetResponseStream();
Response.ContentType = "image/jpeg";
如果喜欢这两个功能如何分离,那么我如何使用第一个函数中的myWebRequest变量到第二个函数?
if like this two functions separated, then how can i use the "myWebRequest" Variable from the first function into secondly function?
答
从一个函数返回对象并将其传递给下一个
Return the object from one function and pass it to the next
public class MyClass
{
public HttpWebRequest CreateRequest(string url)
{
HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);
myWebRequest.Accept = "image/*";
myWebRequest.Method = "GET";
return myWebRequest;
}
public void GetResponse(HttpWebRequest request)
{
HttpWebResponse myHttpWebResponse = (HttpWebResponse)request.GetResponse();
Response.Clear();
Stream receiveStream = myHttpWebResponse.GetResponseStream();
Response.ContentType = "image/jpeg";
}
}
// calling code
MyClass c = new MyClass();
HttpWebRequest r = c.CreateRequest("http://www.google.com");
c.GetResponse(r);
或者做更多面向对象的事情并将对象保持为内部变量
Or do things more object-orientated and keep the object as an internal variable
public class MyClass
{
private HttpWebRequest myWebRequest;
public void CreateRequest(string url)
{
this.myWebRequest = (HttpWebRequest)WebRequest.Create(url);
myWebRequest.Accept = "image/*";
myWebRequest.Method = "GET";
}
public void GetResponse()
{
System.Diagnostics.Debug.Assert(this.myWebRequest != null, "Call CreateRequest before calling GetResponse");
HttpWebResponse myHttpWebResponse = (HttpWebResponse)this.myWebRequest.GetResponse();
Response.Clear();
Stream receiveStream = myHttpWebResponse.GetResponseStream();
Response.ContentType = "image/jpeg";
}
}