Checkers:CS.WRONGUSE.REFEQ/ja

From Insight-9.5

< Checkers:CS.WRONGUSE.REFEQ
Revision as of 10:51, 25 October 2010 by Tlandry (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

メソッド'Object.ReferenceEquals' は、値型で呼び出される場合、常に false となります。そのため、このチェックは無意味です。

例 1

1  namespace NameSpace {
2      struct S {
3      }
4      class A {
5      }
6  
7      class Processor {
8          public bool CompareArgs(S s, A a, Object o) {
9              if (System.Object.ReferenceEquals(s, a)) // defect
10                 return false;
11             if (System.Object.ReferenceEquals(o, s)) // defect
12                 return false;
13             if (System.Object.ReferenceEquals(a, o)) // OK
14                 return false;
15             return true;
16         }
17     }
18 }