与C#相同,int是System :: Int32的别名,它是CLR类型。有没有一种方法可以使用本地“int”,这意味着在标准C++中的int?我可以在C++/CLI中使用原生基元类型吗?
4
A
回答
2
C++/CLI原语类型具有双重身份。根据上下文,类型关键字匹配均为本机C++类型和CLR类型。具有本机类型变量的变量会继承CLR类型上可用的方法,如ToString
。
我想这个博客的文章,解释本机和托管类型之间的关系是非常有益的:http://blogs.msdn.com/b/branbray/archive/2005/07/20/441099.aspx
-1
它们是一样的东西,继续前进,并使用int
任何地方你想要的本地类型。
1
我想接受的答案没有回答任择议定书的问题。
如果/clr
编译开关打开,那么int
关键字意味着System::Int32
,它不是本地的。
如果/clr
编译开关关闭,那么int
关键字意味着本机C/C++ int
,它不受管理。
使用System::Int32
意味着在显著的性能损失本土int
(你可以测量)。
您可以根据.cpp
文件关闭/clr
编译器开关。它不是项目选项,它是一个翻译单元(.cpp文件)选项。
右键单击该文件,然后属性,等等
所以,你可以写在一个.cpp
文件(/clr
关闭编译)一些本地代码。
然后,您可以在另一个文件中编写托管代码(使用/clr
编译)并调用本机代码。
相关问题
- 1. 我可以使用基类'类'来覆盖子元素吗?
- 2. 我可以在反应原生文本中使用blockquote吗?
- 3. 我可以在cordova项目中使用原生插件吗?
- 4. 我可以在View中使用WebView吗(反应原生)?
- 5. JAXB可以使用未知类型的已知元素的基类型吗?
- 6. 我可以在C#中使用“类”类型吗?
- 7. 我可以在预先声明的类中使用类型吗?
- 8. 我可以在抽象基类属性中使用泛型集合吗?
- 9. 我可以使用http.ServerResponse作为node.js中的原型吗?
- 10. 我可以使用原生Android应用覆盖Unity应用吗
- 11. 派生类可以使用基类的朋友函数吗?
- 12. 我可以在派生类中使用wxPython wx.ItemContainer吗?
- 13. 我可以在activex控件中使用CView派生类吗?
- 14. 我可以注册NSNotifications类吗?我可以在NSNotifications中使用类方法吗?
- 15. 我可以在Julia中使用类型字段吗?
- 16. 我可以在类属性中使用泛型吗?
- 17. 我可以在F#中使用动态类型吗?
- 18. 我可以在LightSwitch中使用SqlServer NTEXT数据类型吗?
- 19. 我可以使用基类的实例初始化派生类吗?
- 20. 我可以在GraphQL中使用没有连接类型的边缘类型吗?
- 21. 我可以使用对派生类实例的基类引用初始化派生类引用吗?
- 22. 我可以使用受限通用类型创建超类吗?
- 23. 在Java中,可以将非原始类型视为常量吗?
- 24. 我可以将非原始数据类型传递给WebMethod吗?
- 25. 将基类型的STL容器转换为派生类型可以吗?
- 26. 我可以在jQuery代码中使用原生JavaScript for循环吗?
- 27. 我可以使用BigDecimal作为hibernate hbm中的id类型吗?
- 28. 我可以通过基类类型的引用访问子类方法吗?
- 29. 我可以在原始表格中使用重复的Schema.org'url'吗?
- 30. 我可以使用类模板返回类型的函数吗?
但我很困惑。如果/ clr编译器打开。我可以定义int number = 100,并且调用编号.ToString(),因为它是System :: Int32。如果/ clr开关关闭,则编号不能是System :: Int32。所以,在/ clr开启和关闭的情况下,编译器会以不同的方式处理int类型? – Ryan 2013-03-07 07:13:48
@Ryan:如果你不使用'/ clr',那么你没有使用C++/CLI,我的答案不适用。 – 2013-03-07 12:40:15