我的程序有幾個類和2個表單。我的第一個表單「Main」有一個按鈕,它將顯示第二個窗體「formSettings」和一個打開日誌文件的按鈕。如何知道某個類是否可以用作靜態類?
FormSettings formSettings = new FormSettings();
LogClass objectLog = new LogClass();
public void settingsToolStripMenuItem1_Click(object sender, EventArgs e)
{
//shows the settings form
formSettings.Show();
}
private void viewLogToolStripMenuItem1_Click(object sender, EventArgs e)
{
try
{
objectLog.OpenLogFile();
}
catch (Exception ee)
{
objectMessageBox.ReturnErrorOpeningLogPrompt(ee.ToString());
}
}
我的主要形式創造了兩者的設置形成實例,以及Log類。我的設置類也創建了Log對象的一個實例。我現在遇到的問題是,log類根據設置類中的條目做了一些驗證,但是我無法調用設置類的對象,因爲它調用了log類,或者最終導致無限循環。這是它的確認。
public void Write_Log_Data(string data)
{
//Create an outfile stream
FileStream outfile = new FileStream(fileLocation,
FileMode.Append, FileAccess.Write);
StreamWriter writer = new StreamWriter(outfile);
if (objectSettings.chbxLogScanResults.Checked == true)
{
if (data == null || data == "")
{
//this is for logging ip addresses
writer.WriteLine(Properties.Settings.Default.IPAddressNew + CONST_TAB +
GetDateTime());
}
//because logs containing errors or changed ips are not null data they trigger this section
else
{
//the error was already formatted so just write it
writer.WriteLine(data);
}
//close our writers
writer.Close();
outfile.Close();
}
}
我想知道的是日誌文件應該是靜態的嗎?它可以是靜態的嗎?我希望能夠從任一表單中調用LogClass()方法,它是LogClass的一部分,但如上所示,會根據調用日誌類的某個表單的條目進行檢查。如果我不能使用日誌文件作爲靜態類,我可能會嘗試使用這種方法(我不太瞭解靜態類,因此我的問題)。