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

C#如何用一行代码为已声明的byte数组赋值?

嘿,我来帮你搞定这个byte数组赋值的问题!

已声明byte数组的一行赋值方案

你之前尝试的ConnectionPath = { 0, 2, 1, 0 };之所以无效,是因为数组初始化器{...}只能在声明变量的同时使用,或者配合new关键字一起使用,单独直接用是不符合语法规则的。下面分两种常见场景给你可行的解决办法:

场景1:允许重新分配数组(无需保留原数组引用)

如果你的代码里不需要维持原来的数组对象(比如原数组没有被其他地方引用),直接用new byte[]初始化后赋值就行,这完全是一行代码就能搞定的:

ConnectionPath = new byte[] { 0, 2, 1, 0 };

这行代码会创建一个新的byte数组实例,然后把它的引用赋值给ConnectionPath变量,完美满足你“一行赋值”的需求。

场景2:需要保留原数组引用(不能重新分配)

如果这个数组已经被其他代码引用,你不能创建新数组,只能修改现有数组的元素,那可以用Array.Copy方法一行完成元素替换:

Array.Copy(new byte[] { 0, 2, 1, 0 }, ConnectionPath, 4);

⚠️ 注意:原数组ConnectionPath的长度必须至少为4,否则会抛出数组长度不匹配的异常。另外也可以用更简洁的CopyTo写法(效果完全一致):

new byte[] { 0, 2, 1, 0 }.CopyTo(ConnectionPath, 0);

小补充

如果是在声明数组的时候赋值,你可以省略new byte[],比如:

byte[] ConnectionPath = { 0, 2, 1, 0 };

但正如你提到的,程序运行中需要动态修改数组值时,就必须用前面提到的两种方法啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:18