문제

방금 C#을 사용하기 시작했고 몇 가지 문제가 있습니다. 다음과 같이 vb.net select 문과 C#을 코딩하는 방법이 있습니까?

Select Object.Name.ToString()
    Case "Name1"
        'Do something
    Case "Name2"
        'Do something else
    Case Else
        'Do the default action
End Select

모든 도움은 대단히 감사하겠습니다.


지금까지 입력 해 주셔서 감사합니다. 다음과 같이 여러 컨트롤을 하나의 이벤트 핸들러에 연결하면 각 컨트롤에 대해 약간 다른 작업을 수행하고 싶습니다.

Private Sub Button_Click(sender as Object, e as EventArgs) _
  Handles button1.Click, Button2.Click

    'do a general activity

    Select CType(sender, Button).Name
        Case button1.Name
            'do something
        Case button2.Name
            'do something else
        Case Else
            'do the defalut action
    End Select
End Sub

중첩 된 IFS를 사용하지 않고 위의 선택 명령문을 C#에서 수행하는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 시간이 지남에 따라 일부 vb.net을 찾아 왔습니다. Select...Case 구조물은 C#에 적용되지 않으며 주변의 유일한 방법은 많은 IFS를 작성하는 것입니다.

예를 들어, vb.net에서는 다음을 작성할 수 있습니다.

Dim num as Integer = 5

Select Case num
    Case 1 to 10
        'do something

    Case 11 to 20
        'do another thing

    Case Else
        'do the default
End Select

그러나 아무도 없습니다 switch 이런 종류의 작업을 수행 할 수있는 C#로 구성하십시오. 당신은 그렇게로 원형 교차로로 코딩해야합니다.

int num = 5;

switch (num)
{
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
        //do something
        break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
        //do something else
        break;
    default:
        //do the default
        break;
}

또는 함께 일하고 있다면 Double 또는 이산 값 대신 연속으로 구성된 모든 유형은 사용해야합니다. if필요한 조치를 취합니다.

이유? C#'s switch 다양한에 대한 상수가 필요합니다 case에스. 이것은 vb.net과 다릅니다 Select Case 쓰기 범위를 허용합니다.

다른 팁

당신은 스위치 문을 찾고있을 것입니다 ...

switch (Object.Name.ToString())
{
   case  "Name1":
     //Do something
     break;
   default:
     //default
     break;
}

휴식은 가져 오기에 주목하십시오. 그렇지 않으면 프로그램이 귀하의 사례를 통해 떨어집니다. 거의 모든 C# 소개에서 이것을 찾을 수 있어야합니다 ...

a switch 성명.

switch (object.Name.ToString()) {
  case "Name1":
    break;
    //Do something 
  case "Name2":
    break;
    //Do something else 
  default:
    break;
   //Do the default action 
}

그리고 a가 있다는 것을 잊지 마십시오 무료 온라인 변환 도구 이를 통해 vb.net을 C#로 변환하고 그 반대를 전환 할 수 있습니다.

C# 7을 사용하면 스위치가 크게 향상되었습니다., VB 버전만큼 "깨끗한"것은 아니지만 사례 내에서 더 많은 조건을 적용 할 수 있습니다. 예를 들어 다음과 같은 일을 할 수 있습니다.

switch (examScore)
{
  case int es when es >= 90: grade = "A"; break;
  case int es when es >= 80: grade = "B"; break;
  case int es when es >= 70: grade = "C"; break;
  case int es when es >= 60; grade = "D"; break;
  default: grade = "F"; break;
}

/ 참고 문헌에서 가져온 :

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top