2013-06-03 2 views
1

내 앱에 스피치 클래스가 있는데 듣기, 녹음, 받아쓰기 또는 응답하지 않는 것을 볼 수 있기를 원합니다. 내가 시도Troolean 타입 값

startListeningButton_Click(object sender, EventArgs e) 
{ 
    SpeechState = SpeechState.Listening; 
} 

stopListeningButton_Click(object sender, EventArgs e) 
{ 
    if(SpeechState.Listening) 
    { 
     // Code to STOP listening goes here. 
    } 
} 

구현 : 내가 좋아하는 것이 무엇

과 같이 변수의 어떤 종류 (SpeechState) 3 개 가능한 값의 단지 1을 지정하면됩니다, 너무 그것에 대하여 확인 할 수있다 troolean,하지만 정확히 내가 그랬던 것은 아닙니다.

if(checkBox1.CheckState == CheckState.Checked) 
{ 
    // Do something 
} 

가 어떻게 이것을 달성 할 수있다 :이 유사 뭔가 후 무엇입니까?

+5

는'SpeechState' [열거] 확인을 (http://msdn.microsoft.com/en-us/library/sbbt4032 (V = vs.110)에서 .aspx) ? –

+0

emumeration을 사용하십시오. –

+1

Troolean : Win32 API의 여러 위치에서 사용되는 Microsoft의 참/거짓/오류 체계를 설명하는 속어. 두 가지 상태 (일반적으로 true 또는 false)가있는 부울 값과 비교하여 무언가가 3 개의 상태를 가질 때를 설명하는 데 사용됩니다. – RvdK

답변

14

이 경우 enum을 만들어야합니다.

public enum SpeechState 
{ 
    Listening, 
    Recording, 
    Dictating, 
    Unresponsive 
} 
당신이 설정 보여준으로 검사가 될 것이지만

그런 다음, 정확히를 사용할 수 있습니다 의견에 대 한 응답에서

if(this.SpeechState == SpeechState.Listening) 

편집 : 위해

에 이것을 수업에 올리려면 속성을 저장해야합니다.

public class YourClass 
{ 
    public SpeechState SpeechState { get; set; } 
} 

그런 다음 클래스의이 속성을 값으로 설정할 수 있습니다.

+0

나는 이것을 시도했을 때 작동하지 않는다고 생각했다. 아무리 노력해도 아무런 문제가 없었다. 이걸 어떻게 할당할까요? –

+1

@ 제 이스 - 작동합니다. 위의 링크에서 enum을 찾으십시오. – Hogan

+1

@Jase 클래스에 대해 필드 나 속성이 필요합니다.'public SpeechState SpeechState {get; 세트; }' –

4

열거 사용

public enum SpeechState 
{ 
    Listening, 
    Recording, 
    Dictating, 
    Unresponsive 
} 
+0

나는 이것을 시도했을 때 작동하지 않는다고 생각했다. 아무리 노력해도 문제가되지 않았다. 이걸 어떻게 할당할까요? –

+1

당신은'SpeechState state = SpeechState.Recording;이라고 말합니다. 열거 형은 정수 데이터 유형 위에 구문 설탕입니다. 각 값은 정수 값에 대한 설탕입니다. 위의 예에서 'Listening'은 0, Recording 1, Dictating 2, Unresponsive 3입니다.'SpeechState state = (SpeechState) 123456789;와 같은 것도 말할 수 있습니다. 이것은 완벽하게 합법적입니다. 열거 형에 할당 된 값이 해당 열거 형에 대해 실제로 유효 * 할 필요는 없습니다. –

+0

@NicholasCarey, 그건 아주 달콤한 * 대답입니다. – gunr2171

관련 문제