【发布时间】:2012-04-14 00:59:00
【问题描述】:
当我出于实验目的编写以下 sn-p 时,它引发了悬停错误(见截图):
无法声明指向非托管类型“动态”的指针
sn-p:
dynamic* pointerToDynamic = &fields;
虽然代码显然是不允许的(您不能获取托管类型的地址),但它向我提出了一个问题:非托管类型是什么以及它与托管类型?还是只是 Visual Studio 试图搞笑?
【问题讨论】:
-
显然非非托管类型是非非非非托管类型。嗯。
-
不要过多解读笨拙的错误信息。 C# binder 根本不支持指针。
-
没有区别。措辞仅仅是由于预期的行为。 “指针用于非托管类型。这不是其中之一。它是非托管类型。”错误不是字段是托管的,而是字段不是非托管的,即使这两个短语的意思相同。
-
请记住:如果一个程序想要被告知向左走,而您告诉它向右走,它可能会给您一个非向左错误。
-
@JustinTime,有趣的一点,但这里的类比是,“如果程序告诉你不向左走,而你向左走,它会给你一个不-不左错误”;))))
标签: c# .net types unmanaged managed