コンパイラの警告 (レベル 3) CS1717

同じ変数に割り当てられました。他の変数に割り当てますか?

この警告は、 a = aのように変数をそれ自体に代入したときに発生します。

いくつかの一般的なミスにより、この警告が生成されることがあります。

  • if ステートメントの条件として a = a と記述した場合 (例: if (a = a))。 本来は if (a == a)と記述するつもりであったケースで、この式は常に true になるため、より簡潔に if (true)と記述することもできます。

  • 入力ミス。 本来は a = bと記述するつもりであったケース。

  • パラメーターがフィールドと同じ名前を持ち、 this キーワードを使用していないコンストラクター。本来は this.a = aのように変数をそれ自体に代入したときに発生します。

次の例では CS1717 が生成されます。

// CS1717.cs  
// compile with: /W:3  
public class Test  
{  
   public static void Main()  
   {  
      int x = 0;  
      x = x;   // CS1717  
   }  
}