多くの異なるデータメンバーを含むデータ型 PlayerStats があります。データ メンバーごとに異なるスコアを計算したい (以下のケースでは、statistics.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;
}
この関数を一般的なものにして、似たような関数をたくさん作成する代わりに、どのデータメンバーを見るかを受け入れるにはどうすればよいですか?
何かのようなもの
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;
}