c# - .net 接口(interface)与泛型方法,实现中的错误

标签 c# .net visual-c++ generics interface

请记住,此代码在 C# 中有效,但在 VC++.net 中无效(令人恼火)。我想知道我的错误在哪里。

给定代码:

public interface class iTest
{
   public:
   generic <typename T>
   virtual void AddCriteriaList(List<T> ^CriterionList);
};

generic <typename Q>
public ref class IUseInterface : iTest
{
   public:
   generic <typename T>
   virtual void AddCriteriaList(List<T> ^CriterionList)
   {

   }
};

我收到错误错误 C3766:“IUseInterface”必须为接口(interface)方法“void iTest::AddCriteriaList(System::Collections::Generic::List ^)”提供实现

奇怪的是,如果我删除 IUseInterface 上的通用约束 (Q),错误就会消失。我不明白如何使我的类泛型与特定功能上的泛型有任何关系。

有什么想法吗?谢谢

最佳答案

好吧,如果你不使用 List 参数而只使用 T 参数,它似乎编译得很好。只需将它们全部添加到一个循环或类似的东西中,这只是几行额外的代码,但会为您编译。

关于c# - .net 接口(interface)与泛型方法,实现中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032004/

相关文章:

.net - 测试 OLE DB 连接字符串的快速方法

visual-studio-2010 - C#字符串与std:string:传递字符串时出现问题

c++ - VC++ 中的动态数组大小和动态数组分配器

c# - 如何拥有照片查看器风格的页面?

c# - 声明字段和构造函数注入(inject)的最快方法

c# - RequiredFieldValidator 在我的 ASp 站点中不工作

.net - NuGet 包版本和 NuGet Id

c# - 为什么使用 Activator.CreateInstance 时需要定义无参数构造函数?

visual-c++ - 如何为损坏的修饰名称解码 Visual C++ 方法参数?

c# - 上传后如何重命名文件