首页 > 解决方案 > 添加并作为长异步列表返回

问题描述

我尝试创建一个函数,该函数将创建一个 long 数组并返回它,因为我将在另一个函数中使用。

    private async Task<List<long>> ReturnListArrayLong()
    {
        if (MemOpen())
        {
            byte[] bPosition = new byte[290];
            mmfvs.Read(bPosition, 0, 290);
            Buffer.BlockCopy(bPosition, 0, data, 0, bPosition.Length);

            List<long> ArrayLong = new List<long>();
            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] != 0)
                {
                    await Task.Run(() => ArrayLong.Add(data[i]));
                }
                await Task.Delay(10);
            }
            return ArrayLong;
        }
    }

public async Task getArray()
{
    await ReturnListArrayLong();
}

在此处输入图像描述 错误:DrawForm.ReturnListArrayLong()':并非所有代码路径都返回值

标签: c#c#-4.0

解决方案


if您在条件范围内的错误位置有返回语句。移动申报并返回外面if,你应该很好。

List<long> ArrayLong = new List<long>();
if (MemOpen())
        {
            byte[] bPosition = new byte[290];
            mmfvs.Read(bPosition, 0, 290);
            Buffer.BlockCopy(bPosition, 0, data, 0, bPosition.Length);


            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] != 0)
                {
                    await Task.Run(() => ArrayLong.Add(data[i]));
                }
                await Task.Delay(10);
            }

        }
return ArrayLong;

希望这可以帮助!


推荐阅读