gpt4 book ai didi

c# - C++ CLI 中的 C# 动态关键字等效项是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:34:38 26 4
gpt4 key购买 nike

有两个项目,一个是C++ CLI,另一个是C#。
C# 项目引用了 C++ CLI 项目。

在 C# 中我想这样做:

//method signature is somemethod(dynamic data);
somemethod("haaaii");

现在 C++ CLI 项目中的方法必须处理这个问题。

如何在 C++ CLI 中声明此方法?
还有如何在 C++ CLI 中检测数据类型?

最佳答案

获取 C# 视为动态的方法签名:

void TestMethod( [System::Runtime::CompilerServices::DynamicAttribute] System::Object^ arg )
{
}

但是如果你只想接受所有类型,你可以简单地使用System::Object^。该属性具有误导性,因为它暗示了您将很难提供的语义。

要发现实际数据类型,请使用 arg->GetType()。然后,您可以使用反射和/或 DLR 的所有功能在运行时发现和调用成员。

稍微更有用的是在返回类型上使用属性,因为 C# 将在使用 var 关键字时推断 dynamic 语义。

[returnvalue: System::Runtime::CompilerServices::DynamicAttribute]
System::Object^ TestReturn( void )
{
return 1;
}

关于c# - C++ CLI 中的 C# 动态关键字等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15359802/

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