2010-12-15 4 views
0

문자열 목록을 인쇄하는 GenerateOutput 메서드가 있습니다. 이 메소드는 여러 개의 열거 형을 매개 변수로 사용하여 어떤 플래그가 메소드에 입력되었는지에 따라 결과를 출력합니다. 열거 형은 컴파일 시간에 맞게 설계되었지만 사용자가 프로그램에서 선택한 옵션에 따라 런타임시 출력을 변경할 수 있습니까? 기본적으로 가능한 열거 형을 나타내는 다양한 체크 상자가 있습니다. 사용자가 옵션을 선택하면 해당 플래그가 GenerateOutput 메소드의 매개 변수로 추가되어야합니다. 이 작업을 수행 할 수 있습니까? 감사합니다런타임시 입력 열거 형

+0

예제/코드를 넣으십시오. r GenerateOutput 함수 – Francisco

+0

이 작업을 수행하기위한 테스트 코드 일뿐입니다. 이 메소드는'void GenerateOutput (TestEnumerations tEnums)'이며'tEnums' 값을 콘솔에 출력합니다. 런타임시 여러 tEnum을 입력하고 싶습니다. – Brap

+0

예 :로 구분 된 여러 tEnum을 입력하지 않는 이유는 무엇입니까? 쉼표 또는 일부 다른 문자 및 다음 메서드에서 구문 분석? like : t1, t2 그리고 string.split (',')을 사용하고 Enum.Parse를 값 하나 하나에 사용 하시겠습니까? – Ostap

답변

3

내가 뭘 원하는지 (완전히 귀하의 질문을 이해하지 못 하겠어) 함수에 전달할 런타임에 열거 형 값을 구축하는 것입니다 생각합니다. 목록 목록을 가지고 의견 시스코에 의해 제안,

// In checkbox handlers, e.g. 
tEnums |= TestEnumerations.Value1; 

// Where you call the method 
GenerateOutput(tEnums); 

또는 :

[flags] 
public enum TestEnumerations 
{ 
    Value1 = 1, 
    Value2 = 2, 
    Value3 = 4, 
    //etc 
} 

다음이 작업을 수행 할 수 있습니다 :

당신의 열거가 [플래그] 속성으로 지정되어 있다고 가정 (또는 각 열거 형 값을 한 번만 표시하려는 경우 HashSet) :

// In checkbox handlers, e.g. 
list.Add(TestEnumerations.Value1); 

// Where you call the method 
GenerateOutput(list); 
+0

감사합니다. 나는 네가 할 수 있다는 것을 몰랐다. 그렇게해야합니다. – Brap

+1

값이 2이고 [flags] 속성이 설정된 경우에만 작동합니다. –