본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 학교종이땡땡땡 비프음으로 출력하기 - Key Value (키 값) 매칭하는 3가지 방법 Beep Sound

728x90
반응형
 WPF & C# - 학교종이땡땡땡 비프음으로 출력하기 - Key Value (키 값) 매칭하는 3가지 방법 Beep Sound

Beep.zip
0.07MB
Beep.exe
0.01MB

 

// 학교종이땡땡땡 비프음으로 출력하기 - Key Value (키 값) 매칭하는 3가지 방법

// String
private void btnString_Click(object sender, RoutedEventArgs e)
{
    string str = "도레미파솔라시또";
    int[] arrBeep = { 261, 293, 329, 349, 392, 440, 493, 523 };
    lbl.Content = "";

    char[] chrNotes = tbxNote.Text.ToArray();
    foreach (char chrNote in chrNotes)
    {
        int idx = str.IndexOf(chrNote);
        if(idx >= 0)    // 예외처리 : 일치하는 값이 없으면 -1 이 된다.
        {
            Console.Beep(arrBeep[idx], 300);
        }
    }
}

// Arrary
private void btnArray_Click(object sender, RoutedEventArgs e)
{
    string[] arrStr = { "도", "레", "미", "파", "솔", "라", "시", "또" };
    int[] arrBeep = { 261, 293, 329, 349, 392, 440, 493, 523 };
    lbl.Content = "";

    char[] chrNotes = tbxNote.Text.ToArray();
    foreach (char chrNote in chrNotes)
    {
        int idx = Array.IndexOf(arrStr, chrNote.ToString());
        if (idx >= 0)    // 예외처리 : 일치하는 값이 없으면 -1 이 된다.
        {
            Console.Beep(arrBeep[idx], 300);
        }
    }
}

// Dictionary
private void btnDictionary_Click(object sender, RoutedEventArgs e)
{
    Dictionary<string, int> dic = new Dictionary<string, int>()
    {
        {"도", 261},
        {"레", 293},
        {"미", 329},
        {"파", 349},
        {"솔", 392},
        {"라", 440},
        {"시", 493},
        {"또", 523},
    };
    lbl.Content = "";

    char[] chrNotes = tbxNote.Text.ToArray();
    int i = 0;
    foreach (char chrNote in chrNotes )
    {
        if(dic.TryGetValue(chrNote.ToString(),out i))    // 예외처리 : out 을 쓰면 해당 값이 없는 경우 생략한다.
        {
            Console.Beep(i, 300);
        }
    }
}

 

728x90
반응형