gpt4 book ai didi

.net - C++/命令行界面 : Boxing and Generic Lists

转载 作者:行者123 更新时间:2023-12-05 01:48:57 24 4
gpt4 key购买 nike

我正在尝试创建一个 generic listPointF 对象的引用。 (不,我不打算创建 PointF 对象的通用列表。)但是,以下行无法编译:

Generic::List<PointF^> ^pointList; // Generates error C3225

另一方面,创建一个 PointF 引用数组可以正常工作,如下所示:

array<PointF^> ^points = gcnew array<PointF^>;

这是一个示例程序:

using namespace System;
using namespace System::Drawing;
namespace Generic = System::Collections::Generic;

int main(array<System::String ^> ^args)
{

array<PointF^> ^points = gcnew array<PointF^>{
nullptr, PointF(0.0f, 0.0f), PointF(1.0f, 0.0f), nullptr
};

Generic::List<PointF^> ^pointList;
Console::WriteLine(L"Hello World");
return 0;
}

如何创建 PointF 引用的通用列表?换句话说,我如何创建盒装 PointF 的通用列表?

最佳答案

这是 .Net 泛型的一个限制,它只接受 CLI 兼容类型,例如值类型或对引用类型的引用。它不采用特定于 C++/CLI 的类型,例如 ref 类型的堆栈语义(编译为确定性终结),或者在您的情况下,对装箱值类型的引用。

数组是 CLI 原生的,没有这个限制。

关于.net - C++/命令行界面 : Boxing and Generic Lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1558620/

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