首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于报错信息(struct与托管类型)的疑问,该如何解决

2012-04-11 
关于报错信息(struct与托管类型)的疑问过去一直知道:1、struct是值类型2、值类型在堆栈上3、UNSAFE时&可以返

关于报错信息(struct与托管类型)的疑问
过去一直知道:
1、struct是值类型
2、值类型在堆栈上
3、UNSAFE时&可以返回内存地址
但是当我测试int char enum等类型时都返回了内存地址。
但是当我&(struct)时报错“无法获取托管类型(“ConsoleApplication37.Person1”)的地址和大小,或无法声明指向它的指针”
Person1是一个struct。 不知是我哪里理解有误。为什么struct变成了托管类型放在了托管堆而不是堆栈上?

[解决办法]
见MSDN

下列类型都可以是指针类型:

sbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float、 double、 decimal 或 bool。 

任何 枚举类型。 

任何指针类型。

仅包含非托管类型的字段的任何用户定义的结构类型。

看最后一句

热点排行