C# byte[20]数组大小问题 50

我新建一个byte[]数组,现在设定的大小是byte[20],但是我希望数组大小不是固定的,而是随传入数据多少而改变,听说可以实现,请教高手!最好附上实例代码!... 我新建一个byte[]数组,现在设定的大小是byte[20],但是我希望数组大小不是固定的,而是随传入数据多少而改变,听说可以实现,请教高手!最好附上实例代码! 展开
 我来答
风若远去何人留
推荐于2018-04-23 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部
共占20字节。
数组大小为每个元素大小,乘以数组规模。
byte[20]共有20个元素。
所以数组byte[20]占用的大小就是单个的byte占用大小乘以20。
而一个byte变量占用一字节。
所以byte[20]共占用20字节。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2012-12-13 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
不清楚你的具体需求,不确定的时候要么用参数数组,要么用List,比如参数数组
staticint Add(paramsint[] p)
{
byte[] bt = new byte[p.Length];

}
staticvoid Main(string[] args)
{
Console.WriteLine(Add(1));
Console.WriteLine(Add(1, 3));
Console.WriteLine(Add(1, 3,5));
Console.WriteLine(Add(1, 3, 5,7));
Console.ReadKey();
}

用list的话比如
List<byte> li = new List<byte>();
li.Add(0x01);
li.Add(0x02);
byte[] bt = li.ToArray()
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mfstar
2012-12-13 · 超过15用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:40.1万
展开全部
哎,数据不适合这样子去搞
如果你一定要这样,可以这么搞起:
定义一个方法,用来重定义数据大小
public static Array RedimSize(Array origArray, int desiredSize)
{
Type t = origArray.GetType().GetElementType();
Array newArray = Array.CreateInstance(t, desiredSize);
Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, desiredSize));
return newArray;
}

使用的时候这样
//定义数组 长度为3
byte[] buffer = new byte[] { 1, 2, 3 };
//修改长度为5
buffer = (byte[])RedimSize(buffer, 5);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
merlindlut
2012-12-13 · TA获得超过422个赞
知道小有建树答主
回答量:945
采纳率:0%
帮助的人:404万
展开全部
楼主,数组大小在创建的时候都是固定滴,你用数组就无法动态改变其大小。你可以使用一些其他类型实现你的要求,比如说List<byte>,arraylist等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lex1982
2012-12-13 · 超过12用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:24.7万
展开全部
动态参数的意思?
private void fun(params byte[] b)
{
Response.Write(b.Length);
}

调用的时候随便传几个参数 fun(1, 2, 3);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式