请记住,此代码在 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/