C# соответствующий ментод для хранения общих данных классов
Может быть, я переоцениваю возможности языка. Я работаю над программой для тренировки себя на клавишных музыкальных инструментах с использованием MIDI. Я создал два элемента управления, один из которых представляет клавиатуру, а другой-музыкальные высокие и низкие частоты. Между формой, клавиатурой и персоналом я разработал несколько таблиц преобразования, обычно по одной, но иногда и по две на каждый элемент управления. Некоторые из моих кодов требуют, чтобы один элемент управления получал доступ к таблице из другого. Это быстро стало слишком запутанным для ясности кода или зависимости одного от другого.
Поэтому я решил просто собрать таблицы в один класс и сделать его статичным, чтобы мне не нужно было объявлять его экземпляр. Я начал получать ошибки в коде, и как только я исправил одну вещь, возникла новая проблема. Я пробовал разные механизмы, включая создание общедоступных свойств для доступа к элементам массива. И, возможно, в конце концов у меня появятся словари.
Самая заметная ошибка, которую я получаю, - это при использовании цикла foreach() или for(;;) ошибка, которую я получаю, заключается в том, что требуется экземпляр класса.
Вопросы: Как я должен объявить класс или переменные внутри него? Или, как я должен получить доступ к данным? Или статический класс - это не тот путь, по которому нужно идти?
Что я уже пробовал:
Обратите внимание, что я также пытался объявить массив без конструктора.
namespace Keyboard_Tutor { class MTables { private static Note[] _notes; public Note this[int i] { get => _notes[i]; } static MTables() { _notes = new Note[] { new Note(1, 21, 0), new Note(2, 22, -1), new Note(3, 23, 1), new Note(4, 24, 2), new Note(5, 25, -1), new Note(6, 26, 3), new Note(7, 27, -1), new Note(8, 28, 4), new Note(9, 29, 5), new Note(10, 30, -1), new Note(11, 31, 6), new Note(12, 32, -1),