gpt4 book ai didi

c# - C++/CLI ref 类和 C# 类之间的区别

转载 作者:行者123 更新时间:2023-11-30 17:17:11 25 4
gpt4 key购买 nike

我读过 C++/CLI ref class 等同于 C# 类。但是,我发现每个类中的 this 之间存在差异。

编辑:我从 Visual Studio 2010 的本地人那里获得了 this。 (此外,我注意到在执行完全相同的转换时在编译时存在差异 - C++/CLI 类给出了一个错误,指出它无法将 Object^ 转换为 MyClass^,而使用 C# 类进行转换在编译时不会产生任何错误)。

C#类:

namespace MyNamespace
{

public class MyClass
{
public MyClass()
{
//Do something
}
}
}

this = MyNamespace.MyClass(我所期望和想要的!)


C++/CLI ref class:

namespace MyNamespace
{

public ref class MyClass
{
public:
MyClass::MyClass()
{
//Do something
}
}
}

this = System::Object^(不是我所期望或想要的!!)


我希望 this 类似于 C# 示例,它声明 this 的类型为 MyClass。但是,C++/CLI ref 类声明它的类型为 Object.. 这绝对不是我想要的。(这使得在各种情况下变得困难,例如在 C++ 函数中进行强制转换)。

所以我的问题是(两部分):

a) 为什么这些类的行为与 this 不同?

b) 如何让我的 C++/CLI 引用类在 this 中具有正确的类型??

提前感谢您抽出时间!

最佳答案

您在调试器中看到的是基类的名称 - 在本例中为 Object^。将 MyClass 的基类更改为其他内容,您就会明白我的意思。

Locals window

请注意,最右边的列显示类型。

关于c# - C++/CLI ref 类和 C# 类之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6739831/

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