I have common class which is used by both GUI and CommandLine applications
This class is passed a ReportError function reference which acts differently on GUI and CommandLine.
in the GUI:
public int GUIReportError(String ToLog)
{
MessageBox.Show(ToLog);
return 0;
}
in the common Class members:
readonly Func<string, int> ReportError;
in the common Class Constructor:
public CommonClass(Func<string, int> ReportErrorFunc)
{
ReportError=ReportErrorFunc;
}
Up to now, all is simple but I would integrate the [CallerMemberName] attribute to my log function
public int GUIReportError(String ToLog, [CallerMemberName] string CallingFunction="")
{
MessageBox.Show(ToLog, CallingFunction);
return 0;
}
So I also updated the Func definition:
readonly Func<string, string?, int> ReportError;
note udage of ? to tell it's optional parameter
But When I call this ReportError function, I get a compiler error as follows: CS7036: There is no argument given that corresponds to the required formal parameter 'arg2' of Func<string, string?,int>
if anyone already experienced this kind of problem, I would really appreciate.