This documentation is archived and is not being maintained.

Compiler Warning (level 2) CS0252

Visual Studio 2008

Possible unintended reference comparison; to get a value comparison, cast the left hand side to type 'type'

The compiler is doing a reference comparison. If you want to compare the value of strings, cast the left side of the expression to type.

The following sample generates CS0252:

// CS0252.cs
// compile with: /W:2
using System;

class MyClass
   public static void Main()
      string s = "11";
      object o = s + s;

      bool b = o == s;   // CS0252
      // try the following line instead
      // bool b = (string)o == s;