I am getting lost in the many answers and examples here (Pass Method as Parameter using C#) about passing functions.
At the moment I have this:
private void AddWeekToHistory(ref XDocument xdoc, MSAHistoryWeek historyWeek)
{
// Do stuff
DetectStudentItemDescriptionAndType(studentItem,
bFirstStudent,
iClass,
out string strDesc,
out string strType);
// Do stuff
}
private void DetectStudentItemDescriptionAndType(MSAHistoryItemStudent studentItem, bool bFirstStudent, int iClass, out string strDesc, out string strType)
{
// Do stuff
}
I want to change AddWeekToHistory
so that it can be passed a DetectStudentItemDescriptionAndType
function. This is because I want to add a second version of that function that will use different logic (same parameters).
Ultimately I want to call AddWeekToHistory(ref xdoc, historyWeek, [name-of-func]);
.
I understand from the answers that since I am using a void
function that I should use Action
. But I was getting lost in teh answers because the method in the original question there was passed a parameter and yet in the examples of running the passed function they did not actually pass parameters.
So rather than confuse an existing question I have asked a new one. What changes are needed for me to support passing DetectStudentItemDescriptionAndType
and its variants (same attributes) as a function to AddWeekToHistory
?