如果我使用/ clr模式编译具有以下内容的代码:
int x = 3;
char ch='A';
int arr[]="Hi";
array<int>^ ManArr1={44};
array<int>^ ManArr2= gcnew array<int> {44};
我现在的问题:
类型int
是否会映射到System::Int32
??那char ch
呢?他们认为是本机或托管类型?哪里会被执行!通过MSIL或不通过!!
我们看到int arr[]
是一个原生数组,这是否意味着它将在MSIL之外执行?
最后一个问题,对于托管数组ManArr1
和&amp; ManArr2
两个初始化之间的区别是什么?
答案 0 :(得分:2)
使用/clr
进行编译时,除非您使用#pragma managed(off)
或#pragma unmanaged
int
相当于System::Int32
char
相当于System::SByte
(不是System::Char
!)答案 1 :(得分:1)
关于"For both the managed array ManArr1 & ManArr2 what is the difference between the two initialization ??"
没有功能差异,一个是另一个的简写。