簡體   English   中英

.net與通用方法的接口,實現中的錯誤

[英].net interfaces with generic methods, errors in implementation

請記住,此代碼在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'必須為接口方法'void iTest :: AddCriteriaList(System :: Collections :: Generic :: List ^)'提供一種實現。

奇怪的是,如果我刪除IUseInterface上的通用約束(Q),錯誤就會消失。 我不明白讓我的班級泛型與特定功能上的泛型有什么關系。

有任何想法嗎? 謝謝

我沒有答案,但是如果對您足夠好,這可以解決:

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

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

好吧,如果您不使用List參數,而僅使用T參數,則似乎可以正常編譯。 只需使用將它們全部添加到循環中或類似的東西上,它會增加幾行額外的代碼,但是會為您編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM