2017-09-04 90 views
-5

我有几个关于C#中数组的问题。我可以有一个返回数组值的方法吗?

  1. 在一个方法中,我们可以有一个返回值。我们可以返回一个数组吗?
  2. 如果返回一个数组是不可能的,我们如何使用该方法中收集的数组并在调用方法中使用?

以下是我的代码。

public ArtWorkData[,] getExcelFile(int sheetNumber) 
    { 
     string[,] excRecord = new string[rowCount, colCount]; 
     excRecord[0, 0] = { {"TOPRIGHT", "TOPLEFT"}, 
          {"MIDRIGHT", "MIDLEFT}, 
          {"BOTRIGHT", "BOTLEFT"} } 

     return excRecord; 
    } 

我想知道它的逻辑以及如何将数组传递出方法。感谢你们。

+2

它的语言是什么? –

+1

对不起,我写在C# – NerdyLuke

+1

你的问题是,你声明你正在返回一个'ArtWorkData [,]'的数组,然后你实际上尝试并返回一个'字符串[,]'迈克尔, –

回答

0

数组是一个引用类型,因此您可以像引用类型一样返回引用。数组也实现IEnumerable通用接口,所以如果它让你感觉更好,也可以将其转换为该接口。

例如:

public int[] GetNumbers() 
{ 
    int[] numbers = new int[5]; 
    numbers[0]=34; 
    return numbers; 
} 

public void DoStuff() 
{ 
    IEnumerable<int> data = GetNumbers(); 
    ... 

} 

返回一个参照参考类型确实复制对象 - 其复制到它的参考。你返回数组引用的函数可以改变原数组的内容!

+0

罗伯特,谢谢你的提示。我注意到了我的错误。现在是复制数组。任何线索如何做到这一点? – NerdyLuke

+0

@NerdyLuke肯定,看看[这里](https://stackoverflow.com/questions/14651899/create-a-copy-of-integer-array)。 –

+0

罗伯特,这真的很酷。我已经开始工作了。下一步是使用所有数组中的数据。需要一些计划。如果我遇到更多问题,我会发布。队友的欢呼声。 – NerdyLuke

相关问题