C# byte[20]数组大小问题 50
我新建一个byte[]数组,现在设定的大小是byte[20],但是我希望数组大小不是固定的,而是随传入数据多少而改变,听说可以实现,请教高手!最好附上实例代码!...
我新建一个byte[]数组,现在设定的大小是byte[20],但是我希望数组大小不是固定的,而是随传入数据多少而改变,听说可以实现,请教高手!最好附上实例代码!
展开
6个回答
展开全部
共占20字节。
数组大小为每个元素大小,乘以数组规模。
byte[20]共有20个元素。
所以数组byte[20]占用的大小就是单个的byte占用大小乘以20。
而一个byte变量占用一字节。
所以byte[20]共占用20字节。
数组大小为每个元素大小,乘以数组规模。
byte[20]共有20个元素。
所以数组byte[20]占用的大小就是单个的byte占用大小乘以20。
而一个byte变量占用一字节。
所以byte[20]共占用20字节。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不清楚你的具体需求,不确定的时候要么用参数数组,要么用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()
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()
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哎,数据不适合这样子去搞
如果你一定要这样,可以这么搞起:
定义一个方法,用来重定义数据大小
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);
如果你一定要这样,可以这么搞起:
定义一个方法,用来重定义数据大小
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主,数组大小在创建的时候都是固定滴,你用数组就无法动态改变其大小。你可以使用一些其他类型实现你的要求,比如说List<byte>,arraylist等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
动态参数的意思?
private void fun(params byte[] b)
{
Response.Write(b.Length);
}
调用的时候随便传几个参数 fun(1, 2, 3);
private void fun(params byte[] b)
{
Response.Write(b.Length);
}
调用的时候随便传几个参数 fun(1, 2, 3);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询