小编典典

将变量转换为仅在运行时已知的类型?

c#

foreach (var filter in filters)
{
    var filterType = typeof(Filters);
    var method = filterType.GetMethod(filter, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Static);
    if (method != null)
    {
        var parameters = method.GetParameters();
        Type paramType = parameters[0].ParameterType;
        value = (string)method.Invoke(null, new[] { value });
    }
}

我怎样才能投valueparamTypevaluestringparamType很可能只是一个基本的类型一样intstring或者可能float。如果无法进行转换,我会抛出异常很酷。


阅读 265

收藏
2020-05-19

共1个答案

小编典典

您使用的所有类型都实现IConvertible。因此,您可以使用ChangeType

 value = Convert.ChangeType(method.Invoke(null, new[] { value }), paramType);
2020-05-19