Я пытаюсь инициализировать вновь созданный пустой массив с помощью метода.Пример ниже.Это структура кода, который я хочу создать.
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, но мой недостаток опыта, похоже, не помог.
Summery:
1) как вы пришли к методу, который за один шаг инициализирует пустой массив.
2) как убедиться, что метод может инициализировать массив любого типа (при условии, что элемент в массиве имеет конструктор, который не принимает аргументов)