Erreur du compilateur CS0031

Impossible de convertir la valeur de constante 'value' en 'type'.

Une tentative d’assignation d’une valeur à une variable dont le type ne peut pas stocker la valeur a été effectuée. Pour plus d’informations, consultez Types.

L’exemple suivant génère l’erreur CS0031 dans des contextes checked et unchecked :

// CS0031.cs
namespace CS0031
{
    public class Program
    {
        public static void Main()
        {
            int num = (int)2147483648M; //CS0031
            // Try using a larger numeric type instead.
            // long num = (long)2147483648M; //CS0031

            const decimal d = -10M; // Decimal literal
            unchecked
            {
                const byte b = (byte)d; // CS0031
                // For small values try using a signed byte instead.
                // const sbyte b = (sbyte)d;
            }
        }
    }
}

Voir aussi