获取枚举的 ToString 方法

Getting ToString method of an enum

我正在尝试获取这样的枚举的 ToString 方法

  var parameterExpression = Expression.Parameter(typeof(Program), "x");
  var toStringMethod = typeof(Enum).GetMethod("ToString", new Type[0]);
  Expression leftExpression = Expression.Call(property, toStringMethod);

但是传递它时返回 null。

你是说你想要 Enum 上的一个名为 ToString 的方法,它有一个 Enum.

类型的参数

但这不是 Enum.ToString 的签名。 Enum.ToStringfollowing overloads:

string ToString();
string ToString (string? format);
// and two obsolete overloads

寻找正确的参数类型,你没问题:

var toStringMethod = typeof(Enum).GetMethod("ToString", new Type[0]);

或:

var toStringMethod = typeof(Enum).GetMethod("ToString", new[] { typeof(string) });