2012-12-02 5 views
-3

나는 사이트로 요청을 보내고 응답에 따라 smthng을해야한다.스위치 케이스 실현

   HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.site.ru/sfdcsfs/"); 
req.AllowAutoRedirect = false; 
req.Method = "GET"; 
req.CookieContainer = cookies; 
req.UserAgent = "Opera/9.80 (Windows 7; U; en) Presto/2.9.168 Version/11.50"; 
req.ContentType = "application/x-www-form-urlencoded"; 
res1 = (HttpWebResponse)req.GetResponse(); 
res1.Close(); 
switch (res1) 
{ 
    case res1.Headers["XcT"]: log("[+] ok"); 
    case res1.Headers["Location"].Contains("alreadymember"): log("[-] alreadymember"); 
    default: log("[-] bad"); 
} 

는하지만 오류

Error 1 A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type C:\Users\asus\documents\visual studio 2010\Projects\OdGP\OdGP\Form1.cs 195 29 OdGP 
+0

오류 메시지에 대해 이해하지 못하는 점은 무엇입니까? –

+2

switch 문은 하나의 사례 만 있습니까? 왜'if/else'를 사용하지 않는가? –

+0

업데이트 코드 – user1870480

답변

1

만 일부 유형은 switch 문에서 사용할 수 있고, 그 중 하나는 문자열입니다.
당신은 switch 문

switch (res1.Headers["XcT"].ToString()) 
{ 
    case "[+] ok": 
     log("[+] ok"); 
     break; 
    default: log("[-] bad"); 
} 
+0

아니요, 경우는 약 10입니다. – user1870480

0

에 휴식에 대해 잊지 말아야 내가 여기에 몇 가지 오류가 있기 때문에 당신이 switch 문에 대한 설명서를 참조하시기 바랍니다.

스위치 설명 res1 스위치 유형은 HttpWebResponse이며 오류 메시지에 허용되지 않습니다.

case 레이블은 컴파일시 상수 여야하며 res1.Headers["XcT"]과 같은 임의의 식도 사용할 수 없습니다.

레이블 사이에 쓰러진 부분은 허용되지 않습니다. 모든 사례 레이블 (및 default 레이블)은 break, return이거나 예외를 throw해야합니다. 이 규칙의 예외는 다음과 같이 동일한 문장 블록을 실행하는 여러 라벨을 가질 수 있다는 것입니다.

int i = 0; 
switch (i) 
{ 
    case 0: 
    case 1: 
    Console.WriteLine(i); break; 
    default: break; 
}