2012-03-04 3 views
2

두 문자열을 비교하는 코드를 작성하려고합니다. 둘 중 하나가 텍스트 상자와 같으면 새 winform이 열립니다. winform 부분을 수행하는 방법을 알고 있습니다.if 문에서 문자열 비교

운영자 '||'를 :

 string CreditCard2 = "Some Numbers"; 
     string RFIDCard1 = "E00700000330E44C"; 
     string RFIDCard2 = "E00700000338E539"; 

     if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

string CreditCard1 = "Some numbers";

나는 말을 MSVS 2010 오류가 'string'및 'string'유형의 피연산자에 적용 할 수 없습니다.

내가 원하는 것을 할 수있는 방법이 있습니까?

+0

대단히 감사합니다. – ajaustin12

답변

6

이 줄은 범인 옆의 메모는, 그것은 당신이 신용 자동차로 명백하게 일하는 것을 깜짝 놀라게한다. d 정보를 제공하지만 텍스트 상자의 값을 비교하는 방법을 모릅니다. 고객의 입장에서 정보를 안전하게 관리하는 방법에 대해 조사 할 계획입니다.

+0

+1 어드바이스 단락 ... 좋은 지적. – Ryan

+0

@jordan 저는 실제 신용 카드로 일하지 않습니다. 이것은 경험을 시뮬레이션하는 프로젝트입니다. – ajaustin12

+0

@ ajaustin12 : 다행스럽게도 도움이되었습니다. 전자 상거래에 관심이 있고 신용 카드 정보를 안전하게 처리하는 방법에 관심이있는 경우 여기에서 다음 질문을 확인할 수 있습니다. http://stackoverflow.com/questions/tagged/credit-card+security?sort=votes&pagesize=50 – Jordan

1

이 시도 :

if (CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1) 
1

좋아, 당신이 먼저 하나의 등호는 할당은에 의해 분리되지 비교 둘째 각 인수 또는 부울을 할 필요가 여기에이 문제가, 즉해야

if(CardScan_txtBx == CreditCard1 ||CardScan_txtBx == RFIDCard1) 
4

여기에 세 가지 문제가 있습니다

  1. 당신은 OR를 사용하여 여러 값을 비교할 수는 (||). 이것은 놀랍게도 일반적인 오해이지만 컴파일러에게는 의미가 없습니다.
  2. C#에서의 비교는 ==으로 수행됩니다. =은 과제물입니다.
  3. TextBoxstring이 아닙니다. Text 속성을 사용하여 포함 된 텍스트를 가져 오거나 설정해야합니다.

그래서 결국, 당신의 if 문은 다음과 같아야합니다

if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

보십시오 : A의

if(CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1) 

if(CardScan_txtBx.Text == CreditCard1 || CardScan_txtBx.Text == RFIDCard1) { 
    // ... 
} 
1

else if을 사용할 수 있습니까?

if(CardScan_txtBx == CreditCard1) 
{ 
//Do something 
} else if(CardScan_txtBx == RFIDCard1) 
{ 
//Do something 
} 
1

다른 답변을 올바른 코드가 여기에 왜의 설명이다. 당신이 || 연산자를 사용하면 양측의식이 bool (true 또는 false)으로 평가되는 것으로 예상됩니다.CardScan_txtBx.Text == CreditCard1 || RFIDCard1을 작성할 때 왼쪽에있는 부울로 평가되는 문이 있고 CardScan_txtBx.Text == CreditCard1이고 오른쪽에 문자열로 평가되는 문이 있습니다 RFIDCard1 문자열이 부울이 아니므로 컴파일 시간 오류가 발생합니다. 당신이

1

CardScan_txtBx.Text == RFIDCard1는 다음 코드를 사용해보십시오 말할 있도록 오른쪽에 == 연산자를 반복해야하는 이유는

if (CardScan_txtBx.Equals(CreditCard1) || CardScan_txtBx.Equals(RFIDCard1)) 
{ 
     //Code 
} 
0

또한 목록을 사용할 수 있습니다 .....입니다.

List<string> listOfValidStrings = new List<string>(); 
//Initialise all valid strings. 
if(listOfValidStrings.contains(txtbox.text()) 
{ do something.}