Ошибка компилятора CS0031
Обновлен: Ноябрь 2007
Сообщение об ошибке
Постоянное значение "значение" не может быть преобразовано в "тип". (для переопределения используйте синтаксис "unchecked")
Constant value 'value' cannot be converted to a 'type'. (use 'unchecked' syntax to override)
Предпринята попытка присвоить значение переменной, тип которой не может хранить значения. Дополнительные сведения см. в разделе Типы (руководство по программированию в C#).
В следующем примере ошибка CS0031 генерируется как в контексте checked, так и в контексте unchecked.
// CS0031.cs
namespace CS0031
{
public class a
{
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;
}
}
}
}