У меня есть тип данных PlayerStats, который содержит много разных членов данных. Я хочу рассчитать оценку, которая отличается для каждого члена данных (ниже приведен пример статистики.nrOfGoals).Как я могу сделать функцию, которая перебирает список, и принимает, какой член данных будет иметь доступ в качестве входного параметра
private double getScore()
{
double strength = 0;
foreach (PlayerStats statistics in this.statistics)
{
double dateDiff = Math.Abs(nowDate.Subtract(statistics.date).Days/(365.25/12));
dateDiff = Math.Pow(dateDiff, Form1.historyFactor);
strength += (statistics.nrOfGoals * ValueTable.PointsPerGoals )/dateDiff;
}
return strength;
}
Как я могу сделать эту функцию генерала и принять который DataMember смотреть вместо создания много подобных перспективных функций?
Что-то вроде
private double getScore(Type type, Type type2)
{
double strength = 0;
foreach (PlayerStats statistics in this.statistics)
{
double dateDiff = Math.Abs(nowDate.Subtract(statistics.date).Days/(365.25/12));
dateDiff = Math.Pow(dateDiff, Form1.historyFactor);
strength += (statistics.type * ValueTable.type2)/dateDiff;
}
return strength;
}
Использование MemberExpression. – CodeCaster