2014-04-26 9 views
0

나는 switch 진술서에서 과거에 enum을 사용한 것을 기억하고 있습니다. C# how to use enum with switch에 따르면 나는 올바르게하고 있습니다. 하지만 난 그냥 다시 그것을 할 시도하고 나는 다음과 같은 오류 접수 :switch 문에서 내 enum이 작동하지 않는 이유는 무엇입니까?

'ApplicationMode' is a 'type' but is used like a 'variable'.

여기에 내가 사용하고있는 코드의를 :

public static enum ApplicationMode 
{ 
    Edit, 
    Upload, 
    Sync, 
    None 
} 

private void edit_Click(object sender, EventArgs e) 
{ 
    switch(ApplicationMode) // This is where I see the error. 
    { 
     case ApplicationMode.Edit: 
      break; 
     ... 
    } 
} 
내가 잘못했을 무엇

?

+3

오류 메시지가 정확한 이유를 말했다. – qxg

+2

switch 문은 유형 자체가 아닌 'ApplicationMode' 유형의 변수를 제공해야합니다. 그래서 컴파일 오류가 발생합니다. 당신은 어디에서나 프로그램에'ApplicationMode' 타입의 변수를 보여주지 않습니다. 하나의 세트가 있습니까? 더 중요한 것은, 당신은 무엇을하려고합니까? 사용자가 '편집'버튼을 클릭했습니다. 지금 편집 하시겠습니까? 아니면 모드를'편집 '으로 설정 하시겠습니까? –

답변

4

문제 1 : 열거 형은 기본적으로 고정되어 있으므로 static으로 선언하지 마십시오.

해결 방법 1 : 당신이 열거 선언에 static 키워드를 제거해야

public enum ApplicationMode 
{ 
    Edit, 
    Upload, 
    Sync, 
    None 
} 

문제 2 : 당신이 유효한 열거 값 [Edit,Upload,Sync,None]을 포함 열거 ApplicationMode 변수를 제공해야 경우 switch에, 하지만 enum 유형 ApplicationMode을 제공하려고합니다.

해결 방법 2 : 유효한 값이 포함 된 enum ApplicationMode 변수를 제공하십시오.

이 시도 :

ApplicationMode appMode = ApplicationMode.Upload; //assign any value 
switch(appMode) 
+0

@Sudhakar, 고맙다. 내가 어떻게 이런 일을했는지 ​​생각 나게했다. 당신의 대답은 매우 도움이되었습니다. –

+0

그것은 내 특권입니다. –

관련 문제