2012-03-04 14 views
2

2つの文字列を比較するコードを書き込もうとしています。いずれかがテキストボックスと等しい場合、新しいwinformが開きます。私はwinformの部分を行う方法を知っています。if文内の文字列を比較する

string CreditCard1 = "Some numbers";

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

     if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

私はMSVS 2010ことわざからエラーが出ます:

演算子 '||' 'string'および 'string'タイプのオペランドには適用できません

私は何をしたいのですか?

+0

ありがとうございました。 – ajaustin12

答えて

6

この行は犯人でありますあなたがクレジットカードで働いているように見えるテキストボックス内の値を比較する方法はわかりません。顧客のために、その情報を安全に管理する方法を検討することを本当に願っています。

+0

+1アドバイス段落...良い点。 – Ryan

+0

@jordan私は実際のクレジットカードで働いていません。これは、経験をシミュレートするプロジェクトです。 – ajaustin12

+0

@ ajaustin12:うれしく答えが助けられました。電子商取引に興味があり、クレジットカード情報を安全に処理する方法については、こちらをご覧ください:http://stackoverflow.com/questions/tagged/credit-card+security?sort=votes&pagesize=50 – Jordan

1

この試してみてください:あなたはここで2つの問題は、まず、単一の等号を持って

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

[OK]を代入しませ比較して第二またはブール値であることが必要で区切られた各引数である、すなわち

if(CardScan_txtBx == CreditCard1 ||CardScan_txtBx == RFIDCard1) 
する必要があります
4

ここに三つの問題があります。

  1. あなたはORを使用して複数の値と比較することはできませんが(||)。これは驚くほど一般的な誤解ですが、コンパイラには意味がありません。
  2. C#での比較は==で行われます。 =は割り当て用です。
  3. TextBoxstringではありません。 Textプロパティを使用して、そのテキストに含まれるテキストを取得または設定する必要があります。

だから、最後には、あなたのif文は次のようになります。

if(CardScan_txtBx = CreditCard1 || RFIDCard1)` 

てみてください。:オン

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を書いたときには、左にboolと評価されるステートメントがあり、CardScan_txtBx.Text == CreditCard1です。右に文字列に評価されるステートメントがあります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.}