gpt4 book ai didi

c# - C# 中的不安全代码

转载 作者:可可西里 更新时间:2023-11-01 08:08:06 27 4
gpt4 key购买 nike

C# 中不安全代码的限制是什么?例如,我是否可以像使用 C 或 C++ 一样进行几乎任意的指针转换和算术运算?

最佳答案

是的。 All bets are off当不安全的时候。

这就是“不安全”背后的想法——可验证类型的“安全”被移除,你可以从一种类型的指针转​​换为另一种类型的指针,而运行时不会阻止你 shooting yourself in the foot ,如果您愿意 - 很像 C 或 C++。

这是在 C# 中使用不同指针类型的示例:

fixed (Byte* dstBytes = &currentImage[0])
{
var dstBuffer = (Int64*)dstBytes;
const int blockCount = ImageSizeInBytes / sizeof(Int64);

for (var j = 0; j < blockCount; j++)
{
dstBuffer[j] = srcBuffer[j];
}
}

注意数组的类型是 Byte[],但是在我得到一个 Byte* 之后我可以将它转换为 Int64* 并且一次处理 8 个字节。

关于c# - C# 中的不安全代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173002/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com