This topic has not yet been rated - Rate this topic

Compiler Warning (level 1) CS0184

The given expression is never of the provided ('type') type

The expression can never be true because the variable you are testing is neither declared as type nor derived from type.

The following sample generates CS0184:

// CS0184.cs
// compile with: /W:1
class MyClass
{
   public static void Main()
   {
      int i = 0;
      if (i is string)   // CS0184
         i++;
   }
}
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Error in the warning?
If you have something like this:
interface InterfaceA
{
// ...
}

interface InterfaceB : InterfaceA
{
// ...
}

class ClassA : InterfaceB
{
// ...
}

and you write a method like this:

InterfaceA method(InterfaceA param)
{
param is InterfaceB; //< CS0184
return new ClassA();
}

You'll get the warning CS0184 above!