Я не очень хорош в ООП или даже в C #, но я хочу стараться, чтобы мой код был как можно более чистым.Допустим, у нас есть что-то подобное в пространстве имен "GoogleCalendarNotificator":
public partial class MainForm : Form
{
private object calendarData;
public MainForm()
{
InitializeComponent();
}
private void recieveCalendarDataButton_Click(object sender, EventArgs e)
{
getCalendarDataBW.RunWorkerAsync();
}
private void getCalendarDataBW_DoWork(object sender, DoWorkEventArgs e)
{
try {
getCalendarData getCalendarDataObj = new getCalendarData();
calendarData = getCalendarDataObj.getData();
} catch (Exception err) {
statusHandler("Login Failed, Please check your Data", err.Message);
}
try {
workWithCalendarData workWithCalendarDataObj = new workWithCalendarData();
workWithCalendarDataObj.workWithData(calendarData, MainForm.ActiveForm);
statusHandler("New calendardata recieved");
} catch (Exception err) {
statusHandler("Login Failed, Please check your Data", err.Message);
}
}
public void statusHandler(string displayMessage, string tooltipMessage = null)
{
string curTime = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
statusLabel.Text = curTime + " - " + displayMessage;
if (tooltipMessage != null)
{
statusLabel.ToolTipText = "Original error message: " + tooltipMessage;
}
}
Это хорошее решение для ErrorHandling?А как насчет этой части:
workWithCalendarData workWithCalendarDataObj = new workWithCalendarData();
workWithCalendarDataObj.workWithData(calendarData, MainForm.ActiveForm);
Я просто хочу дать другому классу (workWithCalendarData) возможность взаимодействия с MainForm.Но я не хочу просто писать в классе workWithCalendarData что-то вроде:
MainForm hehe = new MainForm();
hehe.DOSOMETHING();
Я хочу, чтобы это было динамически, если кто-нибудь знает, что я имею в виду.Например, предоставить классу информацию, необходимую для работы с формой (например, MainForm.ActiveForm).