두 열거 형 중 하나의 값 또는 둘 모두의 값으로 채울 수있는 목록 상자가 있습니다. 기본적으로이 코드 :switch 문을 사용하여 여러 Enum에서 문자열 검사
public enum NamesA { Adam , Albert }
public enum NamesB { Bert , Bob }
이후
List<string> nameList = new List<string>();
if (reason) nameList.AddRange(Enum.GetNames(typeof(NamesA)));
else if (reason) nameList.AddRange(Enum.GetNames(typeof(NamesB)));
else
{
nameList.AddRange(Enum.GetNames(typeof(NamesA)));
nameList.AddRange(Enum.GetNames(typeof(NamesB)));
}
foreach (string name in nameList)
listBox1.Items.Add(name);
내 문제는 나중에 코드에서 내가 다른 일을 목록 상자에서 사용자의 선택에 따라 발생 할 것입니다.
string chosenName = listBox1.SelectedItem.ToString();
if (chosenName.Equals(NamesA.Adam.ToString()))
{ /*some stuff happens*/ }
else if (chosenName.Equals(NamesB.Bob.ToString()))
{ /*other stuff happens*/ }
/* ...and so on */
을 ...하지만 난 스위치를 사용하여 선호 :
은 내가 이런 식으로 확인할 수 있습니다 알고 있습니다. 작동 방법을 찾을 수 없습니다. 누구나 아이디어가 있으십니까?
편집 : 나는 또한, 미래 NamesC 처리 할 수있는 스위치의 여지가있을 가지고 ... D ... 등 E, 열거 말을해야한다. 솔루션의
'스위치 (chosenName) {경우 NamesA.Adam.ToString 내가 그것을 달성 한 방법에서보세요() : // 논리 중단; ....}' – Developer
'NamesA.Adam.ToString()'은 case 문에 유효한 상수 표현식이 아닙니다. – RBT
내 해결책을 확인하십시오. 나는 그것이 당신의 요구 사항을 만족 시키기를 바랍니다. – RBT