【发布时间】:2021-03-25 15:23:09
【问题描述】:
我只需要在托管代码可访问的 C++/CLI 类中初始化一次变量。使用gcroot 时,托管指针是否初始化为nullptr?具体来说,下面的Initialize 函数会按我的预期工作吗?无论MyClass::Intialize被调用多少次,都只创建一次MyOtherClass?
class MyClass
{
public:
void Initialize();
private:
#ifdef _MANAGED
gcroot<MyOtherClass^> _myOtherClass;
#endif
};
void MyClass::Initialize()
{
if(_myOtherClass == nullptr)
{
_myOtherClass = gcnew MyOtherClass();
}
}
我使用的是 Visual Studio 2019。访问它的托管对象是用 C# 编写的。我对 CLI 代码比较陌生。而且我无法通过谷歌搜索快速找到答案。而且我相信这个社区中有人知道答案。
【问题讨论】:
标签: c++-cli