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

VB.NET中New Byte(-1){}的含义及C#转换报错问题

VB中New Byte(-1) {}的含义及C#转换方案

1. VB代码里-1的作用

在VB.NET中,数组声明语法为New 数据类型(数组上界)。当指定上界为-1时,会创建一个长度为0的空数组——因为数组下标范围是从0到设定的上界,上界为-1意味着没有有效下标,数组内不存在任何元素。

你代码里的c = If(c, New Byte(-1) {} ),本质是空值兜底逻辑:如果可选参数c为Nothing(未传参或传入空值),就将其替换为空数组,避免后续操作触发空引用异常。

2. C#转换的解决方法

C#的数组初始化规则和VB不同,它不允许用负数作为数组长度(这也是转换工具报错的原因)。要实现和VB代码一致的逻辑,可用两种写法:

  • 推荐使用Array.Empty<byte>()(支持.NET Framework 4.6+、.NET Core及以上版本):
    c = c ?? Array.Empty<byte>();
    
  • 或者直接创建长度为0的数组:
    c = c ?? new byte[0];
    

这两种写法都能生成空字节数组,和VB里的New Byte(-1) {}功能完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:10:56