可能重复:
为什么 C# 不推断我的泛型类型?
假设我们有这样一个方法和一个类:
Result<TOut> SendMessage<TIn, TOut>(TIn message)
where TIn : IMessage<TOut>
{
}
class Message : IMessage<string>
{
}
为什么当我这样调用它时它不能解析类型:
var message = new Message();
var result = SendMessage(message);
我们有 Tin,我们对 Tin 有限制,所以从那里我们可以知道 Tout。但为什么它不起作用?
如果我写
var result = SendMessage<Message, string>(message);
它显然有效,但这并不方便。