繁体   English   中英

我怎么知道一个函数是属于.NET还是C ++?

[英]How can I know if one function belongs to .NET or C++?

我目前在Visual Studio上使用.NET C ++。

我知道.NET和C ++之间的区别:在这种情况下,C ++是一种编程语言,.NET是基于C ++的框架。 如果我错了纠正我。

但是有时候我在SO上问一些问题,用户问我是在说.NET函数还是C ++函数。 我以为.NET会覆盖某些C ++函数,但是我不清楚如何区分一个函数属于C ++还是.NET。

也许这是一个非常简单的问题,但是我不确定。

首先阅读文档(通常是最后一步)。 至少在Visual Studio中,您可以按F1键以在浏览器中显示它。 也就是说,如果函数采用或返回任何托管引用(例如带有^托管引用),或者如果必须使用gcnew分配类,则该类为.net。

关于您上一个问题的特定问题(稍微有点是array<>是托管还是非托管),主要问题是您的问题缺少C ++-CLI标签 ,因此回答者没有立即意识到您使用的语言。使用并假定使用C ++,因为您确实拥有该标签。

array的特定问题部分是因为您可以在C ++-CLI中使用它,而不必添加using namespacecli::命名空间限定。 幸运的是, cli名称空间仅包含4个内容,并且是唯一隐式导入C ++-CLI项目的内容。 .net中的其他所有内容都是托管名称空间的一部分(我相信),并且很明显,您要从中获取哪些功能。

...并且用户问我是在说.NET函数还是C ++函数。

我想用户在这种情况下想知道的是您是在谈论C ++ / CLI实现中的托管类还是非托管类。 实际上,您可以在C ++ / CLI中声明两种类型的类:声明为“ ref类”的托管类型(有时也称为包装器类),或简单地声明为“ class”的普通本机非托管类型。

主要区别在于可以在“ ref类”内使用所有.NET类,而普通的“类”的行为类似于普通的C ++类。 此外,“ ref类”具有连接.NET框架所需的许多语法扩展,而本机“类”则缺少。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM