CS.ASSIGN.SELF

言語エンティティがそれ自体に割り当てられています。

脆弱性とリスク

自己代入は意味がありません。これ自体はエラーでなくても、コード内でより大きなエラーを示す場合があります。

例 1

コピー
  class Foo {
      struct Boo {
          public int x;
          public Boo(int _x) {
              x = _x;
          }
      }
    
      void Assigner() {
         decimal d = 0;
         d = d;             // defect
         Boo boo1 = new Boo(1), 
             boo2 = new Boo(2);
         boo1.x = boo2.x;   // OK
         boo2.x = boo2.x;   // defect
     }
 }