gpt4 book ai didi

.net - 我自己的托管类型作为 C++/CLI 类库中的 arg : CS0570: is not supported by the language

转载 作者:行者123 更新时间:2023-12-04 16:55:10 24 4
gpt4 key购买 nike

我一直在尝试开发一个用于 C# 的 C++/CLI 库,但我遇到了以下问题。如果我们将我的托管引用类设为如下:

namespace Library
{
using namespace System;

public ref class Test
{
internal:
String^ internalString;
public:
Test()
{
internalString = gcnew String("Hey There");
}
~Test()
{

}
};

public ref class TestImplement
{
public:
static String^ TestMessage(Test test)
{
return test.internalString;
}
};
}

我的 C# 实现如下:

使用系统;
namespace AddProgram
{
class Program
{
static void Main(string[] args)
{
Library.Test test = new Library.Test();
Console.WriteLine(Library.TestImplement.TestMessage(test));
Console.Read();
}
}
}

我收到以下错误:

错误 CS0570:该语言不支持“TestMessage”

据我所知,这是由于将类型 Library.Test 作为参数传递。我不明白为什么我会收到这条消息,我希望可以从我的引用库中传递类型。

任何帮助,将不胜感激

最佳答案

您需要将 TestMessage 声明为引用 Library.Test,这意味着使用插入符号 (^),就像您对 String^ 所做的那样。 C++/CLI 允许您通过省略插入符号来使用值类型语义(有点)处理引用类型,但 C# 没有等效功能,这就是您收到该错误的原因。

关于.net - 我自己的托管类型作为 C++/CLI 类库中的 arg : CS0570: is not supported by the language,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661645/

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