Func <t>无法从使用中推断出Inkover错误。尝试明确指定类型参数</t>

时间:2015-01-21 19:49:20

标签: c# .net asp.net-mvc delegates func

我一直在努力解决委托问题。我发送一个方法作为参数,它不会获取参数并返回泛型类型Result<T>

public Result<Content> GetContents()        
    {         
        var contents = new Result<List<TypeLibrary.Content>>();
        contents.Object = context.GetContents();
        if (contents.Object != null)
        {
                contents.Success = true;
            }
            else
            {
                contents.Success = false;
            }            
            return contents;
    }

public static Result<T> Invoker<T>(Func<Result<T>> genericFunctionName) where T : new()
    {
        Result<T> result;
        try
        {
            //do staff               
            result = genericFunctionName();                           
        }
        catch (Exception)
        {
            throw;
        }
        return result;
    }

模型是

public class Result<T> where T : new()
{
    public bool Success { get; set; }
    public string Message { get; set; }        
    public T Object { get; set; }

    public Result()
    {
        Object = new T();
    }
}

用法是

var result = InvokerHelper.Invoker(_content.GetContents());

但我得到

  

方法InvokerHelper.Invoker<T>System.Func<TypeLibrary.Base.Result<T>>)的类型参数无法从用法中推断出来。尝试显式指定类型参数。

编译时

这有什么问题?

1 个答案:

答案 0 :(得分:6)

删除方法名称后面的参数,以便提供方法组(可以将其评估为委托)。因为它正在调用该方法并提供该方法的结果,该结果与预期的委托不匹配。

var result = InvokerHelper.Invoker(_content.GetContents);