gpt4 book ai didi

.net - 定义具有相同名称和不同数量类型参数的泛型类 (C++/CLI)

转载 作者:行者123 更新时间:2023-12-04 05:35:15 25 4
gpt4 key购买 nike

在 C# 中,可以编写如下内容:

public static class Test
{
}
public class Test<T>
{
}

我如何在 C++/CLI 中做同样的事情?

我试图定义:
public ref class Test abstract sealed
{
};

generic<typename T>
public ref class Test
{
};

但是我收到一个 C2011 错误:“'class' 类型重新定义。

我想创建一个静态类,它定义了创建泛型类实例的便捷方法,就像 System.Tuple 一样。

任何帮助将不胜感激!

最佳答案

明确地说,你想这样做:

generic<typename T>
public ref class Test {};

generic<typename T, typename U>
public ref class Test {};

你不能在 C++/CLI 中做到这一点。这是一个缺陷,因为 CLR 允许这样做。但它是从 C++ 继承而来的。 C++/CLI 语言使用了 C++ 编译器的大量管道,在此过程中继承了其命名规则。您可以发布到 connect.microsoft.com,但这将很快被“按设计”关闭。

唯一合适的方法是将这些泛型类型移动到您在 C++/CLI 项目中引用的 C# 类库中。或者通过像重命名其余类那样妥协,像 Test2 这样的东西是可口的。这确实反射(reflect)了这些类完全无关的现实。

关于.net - 定义具有相同名称和不同数量类型参数的泛型类 (C++/CLI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com