У меня есть общий класс, который используется как GUI, так и приложениями CommandLine
Этому классу передается ссылка на функцию ReportError, которая по-разному действует на GUI и CommandLine.
в GUI:
public int GUIReportError(String ToLog)
{
MessageBox.Show(ToLog);
return 0;
}
в общих членах класса:
readonly Func<string, int> ReportError;
в общем конструкторе классов:
public CommonClass(Func<string, int> ReportErrorFunc)
{
ReportError=ReportErrorFunc;
}
До сих пор все просто но я бы интегрировал атрибут [CallerMemberName] в свою функцию журнала
public int GUIReportError(String ToLog, [CallerMemberName] string CallingFunction="")
{
MessageBox.Show(ToLog, CallingFunction);
return 0;
}
Поэтому я также обновил определение Fun c:
readonly Func<string, string?, int> ReportError;
примечание udage of? чтобы указать это необязательный параметр
Но когда я вызываю эту функцию ReportError, я получаю следующую ошибку компилятора: CS7036: не указан аргумент, соответствующий обязательному формальному параметру 'arg2' веселья c
Если бы кто-нибудь уже сталкивался с подобной проблемой, я был бы очень признателен.