我被困了,为什么会这样?代码字面上说实体!= null但调试器认为它是null.到底是怎么回事?
我已经改为x86,重新编译,清理,甚至重新启动电脑.并且代码总是这样,没有if语句不同的版本.如果我继续,我不会得到空指针异常.
目前似乎只能通过用户操作(鼠标/键盘事件)激活全屏功能.有没有办法规避这个?
为什么哦为什么不允许这样做:
private static unsafe byte[] ConvertStruct<T>(T str) where T: struct
{
T* ptr = &str;
int size = Marshal.SizeOf(str);
var arr = new byte[size];
Marshal.Copy((IntPtr) ptr, arr, 0, size);
return arr;
}
Run Code Online (Sandbox Code Playgroud)
我得到编译错误"不能获取地址,获取大小,或声明指向托管类型('T')的指针"
或者"结构"约束还不够?从某种意义上说,它仍然可以是一个托管结构?
我是否正确理解我的结构可能不明显?如果是这样,blittable应该不是一个有效的约束?