Моя программа имеет несколько классов и 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());
}
}
Моя основная форма создает экземпляры как формы настроек, так и класса журнала. Мой класс настроек также создает экземпляр объекта журнала. Проблема, которую я сейчас имею в том, что класс журнала выполняет некоторую проверку на основе записей из класса настроек, однако я не могу вызвать объект класса настроек, так как он вызывает класс журнала, или я заканчиваю бесконечным циклом. Вот подтверждение, которое оно делает.
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();
}
}
Что мне интересно, должен ли файл журнала быть статическим? Может ли быть статичным? Я хочу иметь возможность вызывать метод LogOpen(), который является частью LogClass из любой формы, но, как показано выше, существует некоторая проверка, которая происходит на основе записей одной из форм, вызывающих класс журнала. Что может быть хорошим решением для этого, если я не могу использовать файл журнала как статический класс (я не очень хорошо понимаю статические классы, поэтому я спрашиваю).