У меня была эта проблема также несколько лет назад: функция GetPlayers является статической, это означает, что содержимое (значение) или переменная не доступны из других классов.
Вам необходимо удалить «статический»и запустить MainMenu в классе HighScoresMenu следующим образом:
//MainMenu
public static List<Player> GetPlayers(float newScore, float newPoints, string PlayersName)
//HighScoreMenu
MainMenu main = new MainMenu();
menu.GetPlayers(newScore, newPoints, PlayersName);
Я надеюсь, что это решит проблему (удаление ключевого слова «static» из функции и запуск класса MainMenu). Я был бы рад услышать, если текущийСитуация решена или нет.:) Надеюсь, я хорошо это запомнил.
РЕДАКТИРОВАТЬ: После того, как я посмотрел второй раз, вы начинаете зацикливать его как var player.Но зациклите это как Player player.Потому что вы вставили в другой класс как объект Player в списке игроков.Теперь вы извлекаете его как переменную.
Итак, окончательное заключение:
public partial class HighScoresMenu : Form
{
foreach (Player players in MainMenu.GetPlayers(newScore, newPoints,
PlayersName))
{
ListBoxLevel1.Items.Add(players.getName());
}
}
Мне любопытно, дайте мне знать: D
РЕДАКТИРОВАТЬ2: Также сообщая, если вы никогда не узнаете.Вы всегда делаете только одного игрока, так что на самом деле список не нужен, и этот фрагмент кода:
var TopTenLevel1 = players.OrderByDescending(x => x.Timer).Take(10);
Это будет порядокно вы ничего с этим не делаете (var 'TopTenLevel1').Просто сообщаю :) Вы можете сохранить упорядоченный список, вернув его.(также возможна перезапись переменной)