Значения перечислений, установленные на разные номера / сброс значения перечисления

Я пытаюсь создать программу, которая рассчитает различные музыкальные масштабы на основе исходной информации, которую вы предоставляете.

У меня есть перечисление для различных примечаний:

public enum NoteValue
{
    A = 0,
    Asharp = 1,
    B = 2,
    C = 3,
    Csharp = 4,
    D = 5,
    Dsharp = 6,
    E = 7,
    F = 8,
    Fsharp = 9,
    G = 10,
    Gsharp = 11
}

У меня есть метод, который устанавливает каждую ноту

        public void setNotes(NoteValue startingNote)
        {
        //Creates an array of notes the size that is specified
        theNote = new Note[(numberOfNotes)];

        //Sets the notes
        theNote[0] = new Note(startingNote);
        theNote[1] = new Note((startingNote + step[1]));
        theNote[2] = new Note((startingNote + step[2] + step[1]));
        theNote[3] = new Note((startingNote + step[3] + step[2] + step[1]));
        theNote[4] = new Note((startingNote + step[4] + step[3] + step[2] + step[1]));
        theNote[5] = new Note((startingNote + step[5] + step[4] + step[3] + step[2] + step[1]));
        theNote[6] = new Note((startingNote - step[7]));

        Console.WriteLine("{0} \n{1} \n{2} \n{3} \n{4} \n{5} \n{6}",
            theNote[0].value, theNote[1].value, theNote[2].value, theNote[3].value,
            theNote[4].value, theNote[5].value, theNote[6].value);
    }

, проблема, имеющая в себе то, что если она начнется с G (что 10 в моем перечислении) , Это просто начнет печатные номера после g #. Могу ли я сделать это, чтобы он вернется Обратно до 0 после 11, а не просто продолжать происходить?

Я получу что-то подобное (для основных масштабов):

G 12. 14. 15. 17. 19

вместо

г А. Преступник Слияние Подразделение Свидетельствовать F #

Есть ли способ это исправить? Спасибо.

0
задан Mento 11 September 2011 в 10:56
поделиться