Daa*_*ook 0 c# delphi equivalent
在delphi中的"ZeroMemory"程序,请求两个参数.
代码示例
procedure ZeroMemory(Destination: Pointer; Length: DWORD);
begin
FillChar(Destination^, Length, 0);
end;
Run Code Online (Sandbox Code Playgroud)
我想在C#中制作这个或类似的东西......那么,它们的等价物是什么?
提前致谢!
.NET框架值类型自动"归零" - 这意味着框架保证在将其返回给您使用之前将其初始化为其自然默认值.由值类型(例如数组,结构,对象)组成的事物的字段类似地初始化.
通常,在.NET中,所有托管对象都被初始化为默认值,并且永远不会出现对象内容不可预测的情况(因为它包含恰好位于该特定内存位置的数据),就像在其他非托管环境中一样.
答:您不需要这样做,因为.NET会自动为您"归零"对象.但是,您应该知道每种值类型的默认值.例如,a的默认bool值为false,默认值int为零.
通过仅与外部非托管库进行交互,通常只需要"清零"内存区域.
如果你有一个指向包含数据的内存区域的固定指针,你想要传递给外部非托管库(用C编写,比方说),并且你想要将该部分内存归零,那么你的指针很可能指向一个字节数组,您可以使用一个简单的for循环将其归零.
另一方面,如果在.NET中分配了一个大对象,请尝试重用它而不是丢弃它并分配一个新对象.这是因为任何新对象都会被.NET框架自动"归零",而对于大型对象,此清除将导致隐藏的性能损失.
| 归档时间: |
|
| 查看次数: |
2992 次 |
| 最近记录: |