c# - 如何创建一个没有初始化为 null 或 0 的对象的数组?

标签 c# .net

byte[] buffer = new byte[500000];

用 0 值初始化缓冲区。由于它是一个缓冲区,我不需要任何初始化,在 C# 中是否可以像在 C 中一样?

最佳答案

我认为这是不可能的...甚至FormatterServices.GetUninitializedObject不运行构造函数:

Because the new instance of the object is initialized to zero and no constructors are run, the object might not represent a state that is regarded as valid by that object.

请注意,如果您想要非托管(从非 GC 管理的操作系统获取的内存), 可以在不将其归零的情况下进行分配,但它不会是 byte[] .

关于c# - 如何创建一个没有初始化为 null 或 0 的对象的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319291/

相关文章:

c# - 取消选择数据 GridView 中的所有行

.net - 从 t4 预处理文本模板生成多个输出

c# - 从访问站点的任何用户接收有关托管域电子邮件 ID 的电子邮件

c# - 将数据表列绑定(bind)到类模型中

c# - LINQ-to-SQL .ExecuteCommand() 不适用于参数化对象名称

c# - 返回 json 结果并将 null 转换为空字符串

c# - AutoMapper 对象集合不映射

c# - 仅在一台电脑上出现异常,在其他电脑上工作正常

c# 如何动态生成 pdf 文件并将其流式传输到浏览器,而无需写入本地目录

c# - 如何使用方法调用作为参数