2012-03-04 163 views
2

試圖編寫一段代碼來比較兩個字符串。如果兩者都等於文本框,那麼它會打開一個新的Winform。我知道如何做winform部分。在if語句中比較字符串

string CreditCard1 = "Some numbers";

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

     if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

我從2010 MSVS一個錯誤說:

操作 '||'不能應用於類型'字符串'和'字符串'的操作數

有沒有辦法做到我想要的?

+0

謝謝大家的好的答案。 – ajaustin12 2012-03-04 04:49:26

回答

6

此行是罪魁禍首:

if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

嘗試:

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

在一個我注意到,你顯然正在使用信用卡車d信息,但不知道如何比較文本框中的值。我真的很希望,爲了您的客戶,您計劃調查如何安全管理這些信息。

+0

對於建議段落+1好點。 – Ryan 2012-03-04 04:37:11

+0

@jordan我沒有使用真正的信用卡。這是一個模擬體驗的項目。 – ajaustin12 2012-03-04 04:48:30

+0

@ ajaustin12:很高興答案幫助。如果您對電子商務感興趣並且如何安全處理信用卡信息,則可以在此處查看以下問題:http://stackoverflow.com/questions/tagged/credit-card+security?sort=votes&pagesize=50 – Jordan 2012-03-04 05:04:15

1

試試這個:

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

好吧,你有2個問題在這裏,首先單平等的分配不比較,其次每個參數由分離或者需要一個布爾值,即應

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

有三個問題在這裏:

  1. 你不能比較反對使用或多個值(||)。這是一個令人驚訝的常見誤解,但對編譯器沒有意義。
  2. C#中的比較是用==完成的。 =是分配。
  3. A TextBox不是string;您需要使用其Text屬性來獲取或設置其包含的文本。

所以在最後,你if說法應該是這樣的:

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你有一個語句在左邊012b評估爲bool,並且你有一條語句右邊的字符串求值RFIDCard1因爲字符串不是布爾值,你會得到編譯時錯誤。也許這就是爲什麼你說CardScan_txtBx.Text == RFIDCard1

1

試用一下下面的代碼,你必須重複在右側的==操作符.....

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.}