gpt4 book ai didi

c# - 泛型警告 T 与其他类型的类型同名

转载 作者:可可西里 更新时间:2023-11-01 03:05:54 27 4
gpt4 key购买 nike

鉴于以下

public class Service<T> : IService<T>
{
Repository<T> _repository = new Repository<T>();
public T Get<T>(int id)
{
return _repository.Get<T>(id);
}
}
public interface IService<T>
{
T Get<T>(int id);
}

我收到以下警告

Type parameter 'T' has the same name as the type parameter from outer type 'Services.IService'

我不确定这有什么问题,为什么它关心我的返回类型是否与我告诉类的类型相同。我在这里遗漏了什么吗?

最佳答案

您可以在 Get 方法的声明中省略 。您没有为 所说的 Get 方法引入新的类型参数。您返回一个 T 就足够了。

我认为这会起作用:

public class Service<T> : IService<T>
{
Repository<T> _repository = new Repository<T>();
public T Get(int id)
{
return _repository.Get(id);
}
}
public interface IService<T>
{
T Get(int id);
}

您可以在泛型类和非泛型类中创建泛型方法。

public class Foo
{
public T Get<T>(int a)
{
}
}

您也可以在泛型类中执行此操作,但在不同的类型上。

public class Foo<T>
{
public S Get<S>(int a)
{
}
}

关于c# - 泛型警告 T 与其他类型的类型同名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3686445/

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