10得票2回答
在.NET中,是否可以使用非安全代码实现高效的固定大小数组?

是否有一种在.NET中实现固定大小数组的良好方法而不需要使用unsafe代码? 我的目标是创建一个值类型,它代表可以嵌入(作为成员包含)到其他类型中的固定大小数组 - 即我希望特别避免将数组作为声明它的类型的单独对象创建。 我意识到.NET的数组实现非常出色并且在CLR/CIL级别受支持 - ...

64得票7回答
C#性能 - 使用不安全指针而非IntPtr和Marshal

问题 我正在将一个C应用程序移植到C#。这个C应用程序调用了许多来自第三方DLL的函数,因此我在C#中编写了P/Invoke包装器来调用这些函数。其中一些C函数分配数据,我必须在C#应用程序中使用这些数据,所以我使用了 IntPtr、Marshal.PtrToStructure 和 Mars...

11得票2回答
我似乎无法让msbuild构建不安全代码块。

msbuild似乎不允许我构建unsafe代码块,尽管我的.csproj文件中指定了: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> ... <A...

13得票1回答
结构体中存在LayoutKind.Explicit时,必须遵循LayoutKind.Sequential。

运行以下代码时:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace Stru...

7得票3回答
为什么unsafe.Sizeof被认为是不安全的?

考虑以下内容: import ( "log" "unsafe" ) type Foo struct { Bar int32 } func main() { log.Println(int(unsafe.Sizeof(Foo{}))) } 为什么确定变量...

149得票17回答
我如何在Java中使用指针?

我知道Java没有指针,但我听说Java程序可以使用指针创建,并且只有少数精通Java的人才能做到。这是真的吗?

25得票2回答
在将allowunsafe标志设置为true后,在.NET Core中编译不安全代码仍出现错误

我在我的.NET Core应用程序中使用一些不安全的代码。为此,我对project.json文件进行了如下更改: "compilationOptions": { "allowUnsafe": true, } 然而,我仍然得到错误信息 CS0227: Unsafe code may...

9得票3回答
有对应于 /unsafe 标志的“预处理器”符号吗?

我正在处理C#中的WriteableBitmap。我目前使用不安全的代码块通过WriteableBitmap.BackBuffer直接访问像素。然而,我不想依赖于/unsafe选项,因此我考虑改用WriteableBitmap.WritePixels。 是否有一种条件编译“unsafe”版本...

9得票3回答
将[u8]暂时转换为[u16]

我有一个 [u8; 16384] 和一个 u16。我如何“临时转换”数组,以便可以同时设置两个u8,第一个是最低位字节,第二个是最高位字节?

8得票5回答
使用Unsafe.getUnsafe().throwException抛出异常

我在java.lang.Class#newInstance0中发现了一些有趣的代码: // Run constructor try { return tmpConstructor.newInstance((Object[])null); } catch (InvocationTarg...