48得票11回答
在C#中应该使用指针(不安全的代码)吗?

你应该在C#代码中使用指针吗?有哪些好处?这是由微软推荐的吗?

46得票6回答
C#中的'unsafe'函数 — *(float*)(&result)与(float)(result)之间的区别

有人能简单地解释一下以下代码吗: public unsafe static float sample(){ int result = 154 + (153 << 8) + (25 << 16) + (64 << 24); ...

40得票5回答
有没有一种方法可以获得引用地址?

在Java中,有没有一种方法可以获取引用地址,比如说String s = "hello" 我能否得到s本身的地址?另外,我能否得到引用所指对象的地址?

34得票7回答
C#不安全/固定代码

你能举例说明在C#代码中什么时候使用"unsafe"和"fixed"是恰当的吗?我之前用过它,但从未真正找到过好的用法。 考虑以下代码...fixed (byte* pSrc = src, pDst = dst) { //Code that copies the bytes in a...

34得票2回答
如何在安全的环境中使用不安全的代码?

我需要为Microsoft的一个类使用SecureString,并在互联网上找到了以下代码:public static class SecureStringExt { public static SecureString ConvertToSecureString(this strin...

34得票4回答
C#内存管理:unsafe关键字和指针

在C#中使用unsafe关键字来使用指针有哪些后果(正面/负面)?例如,垃圾回收的结果是什么,性能损失/收益如何,与其他需要手动管理内存的语言相比有何性能损失/收益,存在哪些危险,在哪种情况下使用此语言特性真正合理,编译时间是否更长... ?

32得票3回答
为什么固定大小的缓冲区(数组)必须声明为不安全?

假设我想要一个值类型为7字节(或3或777)。 我可以这样定义:public struct Buffer71 { public byte b0; public byte b1; public byte b2; public byte b3; publi...

29得票6回答
真正的不安全代码性能

我知道不安全的代码更适合访问诸如Windows API并执行不安全类型转换等操作,而不是编写更高效的代码。但我想问你,在实际应用中,与使用安全的C#代码相比,你是否曾经注意到过使用不安全的代码可以带来显著的性能提升。

28得票5回答
.NET中更快(但不安全)的二进制读取器

我遇到了一个情况,需要从一个非常大的文件中读取二进制数据。因此,我意识到 .NET 中默认的 BinaryReader 实现相当慢。通过使用 .NET Reflector 查看它,我发现了以下内容: public virtual int ReadInt32() { if (this....

28得票1回答
`*const T` 和 `*mut T` 原始指针有什么区别?

我正在编写一些不安全的Rust代码,所以我需要知道*const T和*mut T之间的确切区别。我认为它就像&T和&mut T一样(即你只是不能通过&T修改T),但事实并非如此! 例如,指针包装器NonNull<T>的定义如下(源代码见这里): pub ...