【发布时间】:2018-04-15 21:52:05
【问题描述】:
我必须在做一些计算后返回一个数组。但是如果不在方法中创建数组,我不知道该怎么做。
int[] arr = numbers(number1, number2); // this is in the main function
这是我创建的方法
static int[] numbers(int number1, int number2)
{
for(int i=number1; i<=number2; i++)
{
if(i%2==1)
{
return [i++]=i;
}
}
return 0;
}
这是我到目前为止所做的,但它有编译时错误。 如果 i 中的值与 main 方法中的数组奇数,我要做的就是返回。
请注意,我不想在 numbers 方法中创建另一个数组。
最初的问题是关于在给定范围内查找奇数。 Number1 和 number2 是范围限制。方法声明没有变化。并且可以根据需要创建内容。最后它应该以方法的返回类型返回。返回的东西将被整数数组捕获。就是这样,最后打印数组
【问题讨论】:
-
那么谁来创建数组呢?你真正想做什么?为什么不在方法内创建数组?或者创建一个数组 field 并返回对它的引用,但存在相关的错误和返回陈旧、脏数据或突然更改数据的风险?
-
如果你告诉我们你为什么要做这样的事情,可能有其他解决方案吗?
-
但是……为什么?现在您的问题是这样的:“如何在不创建数组的情况下创建数组?”。你想填充一个用另一种方法创建的数组吗?您是否需要比数组更灵活的东西,因为您不知道它会有多少元素?
-
您可以用
yield return代替IEnumerable<int>并在方法之外调用ToArray,但问题仍然存在:为什么? (另外,l和r是什么?) -
当然会有编译时错误,首先你必须返回
int[],但返回0。还有这是什么 ->[i++]=i;?
标签: c# arrays methods return-type