我想通過使用方法來初始化一個新創建的空數組。下面的例子。 這是我想要創建的代碼的結構。c#通過使用方法初始化某些特定數組
var v = exClass[5,5];
v.ExtensionMethodThatWillInitilize();
我想ExtensionMethodThatWIllInitilize做的是以下幾點:
for(int y = 0 ; y < exClass.getLength(0); y++) {
for(int x = 0 ; x < exClass.getLength(1); x++) {
v[y,x] = new instanceObject();
}}
於是我想出了下面的代碼...
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var oldEx = new ExClass[10, 10];
var newEx = oldEx.init();
}
}
public class ExClass
{
public string exString
public ExClass() {
exString = " I AM NEW! YES! ";
}
}
public static class tools
{
static public ExClass[,] init(this ExClass[,] start)
{
var newArray = new ExClass[start.GetLength(0), start.GetLength(1)];
for (int y = 0; y < start.GetLength(0); y++)
{
for (int x = 0; x < start.GetLength(1); x++)
{
newArray[y, x] = new ExClass();
}
}
return newArray;
}
}
然而,問題是,我不知道如何修改我的init方法,以便它可以接受任何類型的數組並返回已初始化的相應數組。 我試圖使用泛型類型T,但我缺乏經驗似乎失敗。
綜述:
1)你怎麼來了,這將在一個單一的步驟初始化一個空數組的方法。
2)你如何確保該方法可以初始化任何類型的數組(假設數組中的元素有一個構造函數不帶任何參數)
使用動態數組{}或{,} – MethodMan 2012-02-23 18:20:25
嘗試在通用方法中發佈您的嘗試,因爲這肯定是對此的解決方案。我很確定你錯了哪裏,但最好不要猜測。 – Servy 2012-02-23 18:21:05