私はこれについて本当に混乱しています。パラメータをメソッドに渡す方が合理的であることは知っていますが、継承を使用すると、すべての変数が公開されます。
public abstract class HttpRequestBase
{
public string Url { set; get; }
public IWebProxy Proxy { set; get; }
public abstract void SendHttpRequest();
}
public class HttpRequest : HttpRequestBase
{
public override void SendHttpRequest()
{
HttpWebRequest objHttpWebRequest = (HttpWebRequest)WebRequest.Create(base.Url);
objHttpWebRequest.Proxy = base.Proxy;
....etc.
}
public class Class1: HttpRequest
{
void Request()
{
SendHttpRequest();
}
}
そして私のWinFormで:
private void Form1_Load(object sender, EventArgs e)
{
Class1 obj = new Class1();
obj.Url = "http://google.com";
obj.Proxy = null;
//Instead of passing the "obj" as a parameter, all these properties are already shared
obj.Request();
}
パラメータを渡す方が理にかなっていますが、使用しない場合、共有プロパティの目的は何ですか?