gpt4 book ai didi

c# - 无法从用法中推断出方法的类型参数

转载 作者:IT王子 更新时间:2023-10-29 03:51:12 24 4
gpt4 key购买 nike

也许我工作过度了,但这不是编译 (CS0411)。为什么?

interface ISignatur<T>
{
Type Type { get; }
}

interface IAccess<S, T> where S : ISignatur<T>
{
S Signature { get; }
T Value { get; set; }
}

class Signatur : ISignatur<bool>
{
public Type Type
{
get { return typeof(bool); }
}
}

class ServiceGate
{
public IAccess<S, T> Get<S, T>(S sig) where S : ISignatur<T>
{
throw new NotImplementedException();
}
}

static class Test
{
static void Main()
{
ServiceGate service = new ServiceGate();
var access = service.Get(new Signatur()); // CS4011 error
}
}

有人知道为什么不吗?或者怎么解决?

最佳答案

Get<S, T>采用两个类型参数。当您调用 service.Get(new Signatur());编译器如何知道什么 T是?您必须显式传递它或更改有关类型层次结构的其他内容。显式传递它看起来像:

service.Get<Signatur, bool>(new Signatur());

关于c# - 无法从用法中推断出方法的类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com