Advertencia del compilador (nivel 1) CS0183

Actualización: noviembre 2007

Mensaje de error

La expresión dada es siempre del tipo proporcionado ('tipo')
The given expression is always of the provided ('type') type

Si una instrucción condicional se evalúa siempre como true, no es necesaria una instrucción condicional. Esta advertencia aparece cuando intenta evaluar un tipo utilizando el operador is. Si la evaluación es un tipo de valor, la comprobación es innecesaria.

El código siguiente genera el error CS0183:

// CS0183.cs
// compile with: /W:1
using System;
public class Test
{
   public static void F(Int32 i32, String str)
   {
      if (str is Object)          // OK
         Console.WriteLine( "str is an object" );
      else
         Console.WriteLine( "str is not an object" );
      
      if (i32 is Object)   // CS0183
         Console.WriteLine( "i32 is an object" );
      else
         Console.WriteLine( "i32 is not an object" ); // never reached
   }


   public static void Main()
   {

      F(0, "CS0183");
      F(120, null); 
   }
}