我对 VS2012 IDE 有一些分歧,我最近从 C# 迁移到 C++/CLI,我可能几乎不知道,但除了这个小问题,一切都进展顺利。我非常了解参数化类型,但我似乎无法弄清楚如何返回具有参数化类型的东西。我在多个网站上查找了所有内容,发现有两种方法可以做到这一点:ageneric
和 atemplate
这就是我在 C# 中的做法:public static Dictionary<TKey, TVal> MakeDictionary<TKey, TVal>(List<TKey> Keys, List<TVal> Values){/*code*/}
在 C++/CLI 中我尝试过:
generic<typename TKey, typename TVal> static Dictionary<TKey, TVal> ^MakeDictionary<TKey, TVal>(List<TKey> ^Keys, List<TVal> ^Values){/*code*/}
和
template<typename TKey, typename TVal> static Dictionary<TKey, TVal> ^MakeDictionary<TKey, TVal>(List<TKey> ^Keys, List<TVal> ^Values){/*code*/}
除其他外,编译器总是遇到相同的问题,无法识别 TKey 和 TVal。
我的问题:如何指定类型参数,我做错了什么?