gpt4 book ai didi

c# - 该语言不支持“TEST”

转载 作者:行者123 更新时间:2023-12-01 20:11:09 26 4
gpt4 key购买 nike

当我调用 C++ 函数时:

public ref class TEST_CLASS
{
void TEST(void (*func)())
{
(*func)()
}
};

在 C# 中:

TEST_CLASS t = new TEST_CLASS();
t.TEST(f);

我收到错误:

'TEST' is not supported by the language

什么会导致此错误?我该如何修复它?

最佳答案

When I call a the C++ function:

那不是 C++ 代码,您编写了 C++/CLI 类。请注意ref class关键字。您声明该方法采用 C 函数指针。这在 C++/CLI 语言中很好,它允许您混合 native 和托管代码构造,但对于 C# 或 VB.NET 等语言来说不太好。他们坚持要求您使用函数指针的托管版本,即委托(delegate)

.NET 框架中已有一个委托(delegate)类型与 C 函数指针 MethodInvoker 的签名相匹配。但是我们假设您想要扩展签名并添加您自己的参数和返回类型:

public ref class TEST_CLASS
{
public:
delegate void TEST_delegate();

void TEST(TEST_delegate^ func)
{
func();
}
};

选择这个名字有点伤人。

关于c# - 该语言不支持“TEST”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642432/

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