職場では、サーバー上で実行されているアプリケーションに関連付けられたサーバーと Web サイトの非常に大きなリストを監視しています。通常、各アプリケーションの背後にはサーバーのクラスターがあり、およそ 6 ~ 10 の異なる Web ページがあります。そこで、サーバーの名前を受け取り、それに関連付けられている URL を制御する Servers クラスを作成しました。今、ここが私が苦労している部分です。各 URL には、物理 URL と URL のステータス (オンライン/オフライン) という 2 つの値が関連付けられます。これを処理する 2 つの方法を思いつきました: 2D 配列 (またはリスト) を作成するか、url サブクラスを作成します。サブクラスのすべてのメソッドにアクセスするのは簡単だと思っていたので、サブクラスのメソッドの方が優れているように思えました...今のところ、Servers クラスの外でそれらを呼び出すことはできません。これにより、クラス/メソッドの範囲に問題があると思われます。これが私のServers.csコードです...何が間違っていますか?
public class Server
{
public List<string> serverNames = new List<string>();
public List<object> urlList = new List<object>();
public string[][] urlArr = new string[1][];
public Server()
{
}
public Server(string nm)
{
serverNames.Add(nm);
}
public void setName(string newName)
{
serverNames.Add(newName);
}
public void addUrl(string newUrl)
{
Server.Url url = new Server.Url(newUrl);
urlList.Add(url);
url.SetStatus(false);
}
protected class Url
{
public string url;
public bool status;
public Url()
{
}
public Url(string URL)
{
url = URL;
}
public void SetStatus(bool stat)
{
status = stat;
}
public bool ReturnStatus()
{
return status;
}
}
}
Url クラス メソッド ReturnStatus を呼び出して、その URL のステータスを確認する方法を次に示します。問題は、ReturnStatus メソッドが利用できないことです...
private void button2_Click(object sender, EventArgs e)
{
int length = serversList[0].urlList.Count;
for (int i = 0; i <= length - 1; i++)
{
listBox1.Items.Add(serversList[0].urlList[i].ToString()+ serversList[0].urlList[i].ReturnStatus());
}
}