编辑以显示真实示例
如何从传递给函数的泛型类型调用泛型函数?这似乎应该很直观,但是我似乎无法使其正常工作。
例如,我可以在下面的LocalDataObjectEngine中调用cache.ResetCache()函数吗?
我收到的错误是“类型T不能用作参数”
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/