You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#从Bin文件实例化字节数组的实现报错及解决方案咨询

问题解决:C#动态加载Bin文件到字节数组的对象实现

你的错误出在这行代码:

public byte[] binData {get;set;} = new byte[];

C#不允许这样创建数组——创建数组时必须指定长度(比如new byte[100])或者提供初始化元素(比如new byte[]{0x01, 0x02}),两者缺一不可,所以触发了CS1586错误。

修正方案

你根本不需要给binData做默认初始化,因为构造函数里会通过File.ReadAllBytes直接赋值,而这个方法会自动根据目标Bin文件的大小生成对应长度的字节数组,完全满足你动态加载不同文件的需求。

基础修正版

namespace binMapper;

public class BinFile // 遵循C# PascalCase命名规范,类名首字母大写
{
    public byte[] BinData { get; set; }

    public BinFile(string pathToBinFile) // 用string关键字替代String更符合C#习惯
    {
        BinData = File.ReadAllBytes(pathToBinFile);
    }
}

更优的只读属性版

如果Bin文件加载后不需要修改数组内容,推荐把属性设为只读,避免后续意外修改:

namespace binMapper;

public class BinFile
{
    public byte[] BinData { get; } // 只读属性,仅能在构造函数中赋值

    public BinFile(string pathToBinFile)
    {
        BinData = File.ReadAllBytes(pathToBinFile);
    }
}

补充说明

  • File.ReadAllBytes方法会自动处理文件大小,返回与文件实际字节数一致的数组,完全不需要你预先声明大小。
  • 遵循C#命名规范能提升代码可读性,类名、属性名用PascalCase,参数名用camelCase。

内容的提问来源于stack exchange,提问作者Tinaye Tsinakwadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:42:22