gpt4 book ai didi

c# - 如何在泛型方法中使用泛型类型

转载 作者:行者123 更新时间:2023-11-30 21:25:47 26 4
gpt4 key购买 nike

已编辑以展示真实示例

如何从传递给函数的泛型类型调用泛型函数?这看起来应该很直观,但我似乎无法让它发挥作用。

比如我可以在下面的LocalDataObjectEngine中调用cache.ResetCache()函数吗?

我收到的错误是“Type T cannot be used as a parameter”

public interface ISimpleCache<T1>
{
...
void ResetCache<T>() where T : T1;
}

internal class LocalDataObjectEngine_Cache : ISimpleCache<IBrokeredDataObject>
{
ISimpleCache<IBrokeredDataObject> _cache;

...

public void ResetCache<T>() where T : IBrokeredDataObject
{
//logic here
}

...
}

public partial class LocalDataObjectEngine : IEngine
{
ISimpleCache<IBrokeredDataObject> _cache = new LocalDataObjectEngine_Cache();

public void ResetCache<T>() where T : IBrokeredDataObject
{
_cache.ResetCache<T>();
}
}

}

最佳答案

除非您对 IBrokeredDataObject 的定义中包含某些内容,否则我不确定发生了什么。你写的东西看起来不错,对我来说编译得很好。

[编辑以匹配 OP 中的编辑]

关于c# - 如何在泛型方法中使用泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/452743/

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