2016-11-25 13 views
1

나는이 코드를 심은사운드와 음소거 모드를 프로그래밍 방식으로 전환하려면 어떻게해야합니까?

[DllImport("KERNEL32.DLL")] 
extern public static void Beep(int freq, int dur); 

// and 

Beep(2222, 55); 
Beep(3333, 55); 

를 사용하여 경고음을했다 (음 (주파수, 경질)) 거의 여기 저기 hundread 시간 (다양한 주파수, 기간 및 시간 포함).

이제 프로그래밍 방식으로 사운드 및 음소거 사이를 전환하고 싶습니다.

나는 할 지루한 작업을해야

if (my_Flag) 
{ 
    Beep(2222, 55); 
    Beep(3333, 55); 
} 

같은 것을 함께 할 수 있습니다. 더 좋은 아이디어가 있습니까?

감사합니다.

+1

'마술 번호'를 사용한 경우 '지루한 작업'을 수행해야합니다. 그 동안 코드에서 프로그래밍 방식으로 변경할 수있는 GLOBAL 변수를 정의하고이를 사용하여 '마법 수'를 대체하십시오. – Steve

+0

지루한 작업이 의미하는 것을 피할 수있는 방법이 있는지 의심 스럽지만 ' Beep' 메쏘드는 비프 음이 들리는 지 아닌지를 나타내는 부울을 제외하고 직접 확인해야합니다. – HimBromBeere

+0

만약 내가 너라면, Beep of Kernel32를 호출 할 자신의 (싱글 톤 클래스 +) 함수 (int, int)를 만들 것이다. 그러면 다음과 같은 문제에 대해 훨씬 적은 문제가 발생할 것이다. 결코 적게, 당신은 다른 방법으로 리팩터링을하지 않을 것입니다.이게 내가 생각하기에 ... – TripleEEE

답변

4

모든 것이 Beep(x,y) 메서드로 정의 된 경우 사용자는 고유 한 메서드를 작성한 다음 리 팩터 -> 모든 메서드 이름 바꾸기를 MyBeep(x,y)으로 작성할 수 있습니다.

public void MyBeep(int freq, int dur) 
{ 
    if(myFlag) 
     Beep(freq, dur); 
} 
+1

흠 나는 나에게 잘 들린다. 우주 왕복선 기술이 내게는 보이지만. OK 나는 그것을 밖으로 시험 할 것이다. 나는 초급자이다. 내 질문으로 쉽게 알 수있다. 당신의 대답은 저에게 소중합니다. 감사. Tatranskymedved – Jason

+0

문제 없습니다. =) – Tatranskymedved

+0

완벽하게 작동합니다! 다시 한번 감사드립니다. – Jason