首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VisualC#中使用数组?

在VisualC#中使用数组?
EN

Stack Overflow用户
提问于 2011-12-30 23:41:12
回答 5查看 107关注 0票数 1

我有一个函数,它将数组作为参数。然后,函数将未知长度的信息填充到数组中。那么,我如何创建一个数组来存储长度未知的消息呢?因为我不能指定数组的大小,因为我不知道它将要存储的消息的大小。

这样会有效吗?

代码语言:javascript
运行
复制
byte [] array;
function (array);

然后数组的大小将取决于它所填充的消息的大小?如果这不可能,我该怎么做?

我需要数组是它所填充的消息的确切大小,所以我不能仅仅指定数组的随机大小来适应消息。

补充意见如下:

代码语言:javascript
运行
复制
public int ReceiveFrom( byte[] buffer, int offset, int size, 
       SocketFlags socketFlags, ref EndPoint remoteEP ) 
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-31 00:04:42

关于使用

代码语言:javascript
运行
复制
public int ReceiveFrom( byte[] buffer, int offset, int size, 
   SocketFlags socketFlags, ref EndPoint remoteEP ) 

你应该在循环中使用这个。您正在一次接收全部消息(流)的一部分。由你来决定你需要哪一部分。可以选择将其余部分向下移动,并在下一次调用中指定一个offset

代码语言:javascript
运行
复制
byte[] buffer = new byte[1024];
ínt n;
do 
{
    n = ReceiveFrom(buffer, 0, buffer.Lenght, ...);

    if (n > 0)
        // process n bytes in buffer

} while (n > 0);
票数 2
EN

Stack Overflow用户

发布于 2011-12-30 23:45:44

您可以使用一个列表,然后一旦您的消息被填充,请调用ToArray

编辑

示例:

代码语言:javascript
运行
复制
List<byte> message = new List<byte>();
message.Add(/*your byte*/);
//More Adds
function(message.ToArray());
票数 3
EN

Stack Overflow用户

发布于 2011-12-30 23:42:44

你可以用列表代替。尽管可能,您不需要设置预定的长度,列表将随着更多对象的添加而展开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8685096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档