Это ошибка ExpressionTrees? # 2

Похоже, что компилятор ExpressionTrees должен быть близок со спецификацией C # во многих случаях, но в отличие от C # нет поддержки для преобразования изdecimal любомуenum-type:

using System;
using System.Linq.Expressions;

class Program
{
  static void Main()
  {
    Func<decimal, ConsoleColor> converter1 = x => (ConsoleColor) x;
    ConsoleColor c1 = converter1(7m); // fine

    Expression<Func<decimal, ConsoleColor>> expr = x => (ConsoleColor) x;

    // System.InvalidOperationException was unhandled
    // No coercion operator is defined between types
    // 'System.Decimal' and 'System.ConsoleColor'.

    Func<decimal, ConsoleColor> converter2 = expr.Compile();

    ConsoleColor c2 = converter2(7m);
  }
}

Другие редко используемые явные преобразования C #, такие какdouble -> enum-type существует и работает, как описано в спецификации C #, но неdecimal -> enum-type, Это ошибка?

Ответы на вопрос(2)

Ваш ответ на вопрос