我的程序有几个类和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的一部分,但如上所示,会根据调用日志类的某个表单的条目进行检查。如果我不能使用日志文件作为静态类,我可能会尝试使用这种方法(我不太了解静态类,因此我的问题)。