2017-02-23 19 views
0

私は3つのテキスト(文字列)の値をif条件にし、3つの入力がすべて自分の条件に一致するかどうかを確認し、メッセージボックスが "True"であることを確認する必要があります。私はすでにセットを作成したと述べた上記のクラスIFオペレータで3つの条件をチェックする方法は?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
// 
namespace KBS_Task3 
{ 

    class PredecessorDAO 
    { 
      public void check(predecessor predecessor) 
      { 
      string predic = predecessor.getPredic(); 
      string arg1 = predecessor.getArg1(); 
      string arg2 = predecessor.getArg2(); 

      if(predic = "ISA" && (arg1="Car" && arg2="Vehicle")) 
       { 
       MessageBox.Show("TRUE"); 
       } 
      } 
    } 
} 

を取得しているが、PredecessorDAOクラスは

です:私は、もし条件

ノート内の3つの条件をチェックする必要があるというのが

簡単な方法

先行クラスから呼び出されるgetとset

Windowsフォームには3つのコンボb牛のフィールド。

+4

あなたのコードはそれほど問題は何か、あなたは '=' '=='と交換した場合に動作しますか? –

+4

'='または '=='をチェックしますか? – doctorlove

+2

[C#オペレータのドキュメント](https://msdn.microsoft.com/en-us/library/ms173145.aspx)を見ましたか? –

答えて

2

あなたが間違っているかどうかを確認する演算子があります。 assignment operatorを使用します。しかし、あなたが必要なのはequality operatorです。前者では変数に値を代入でき、後者では2つの文字列を比較できます。

結果は次のようになり等価演算子を使用する:

public void check(predecessor predecessor) 
{ 
     string predic = predecessor.getPredic(); 
     string arg1 = predecessor.getArg1(); 
     string arg2 = predecessor.getArg2(); 

     if(predic == "ISA" && arg1 == "Car" && arg2 == "Vehicle") 
     { 
      MessageBox.Show("TRUE"); 
     } 
} 

真ん中に括弧は必要ありません。

+0

ありがとう、それは動作します:) –

1

あなたの質問を正しく理解していれば、3つの変数が3つの値に等しいかどうかを確認するだけです。 &&演算子を使用するのは間違いありませんが、条件付き演算を実行する場合は、=演算子の代わりに==演算子を使用する必要があります。

何かの値を設定する場合は、=演算子を使用します。

あるオブジェクトが別のオブジェクトと等しいかどうかを確認する場合は、==演算子を使用します。

ですから、交換することができる必要があります:

if(predic = "ISA" && (arg1="Car" && arg2=" { 
    MessageBox.Show("TRUE"); 
} 

付:

if(predic == "ISA" && arg1 == "Car" && arg2 == "Vehicle") { 
    MessageBox.Show("TRUE"); 
} 
+0

おかげでそれは動作します –

関連する問題