У меня есть класс под названием «Плитки».Передача массива объектов на функцию
public class Tiles
{
public int cordX, cordY, tileID;
Booleans someBooleans;
public constructor(int X,int Y,int ID)
}
Программа создает информацию 2D-сетки и сохраняет (XY-позиционный, tileID) в массиве объектов класса Tiles. Как это:
Создать новый массив объектов
Tiles[] tileArray = new Tiles[totalGridSize];
Loop через два раза, чтобы создать экземпляр отдельных элементов в массиве объектов
tileArray[X + Y] = new Tiles(xPos, yPos, ID);
До сих пор все работает, как ожидалось. Но теперь я хочу передать элементы tileArray функции. (Это хорошо для функции статичным?)
public static void tileStatusChecker(Tiles x[])<---
{
Console.WriteLine("Position is {0}X and {1}Y. ID=={2}", x.cordX, x.cordY, x.tileID)
}
== Это дает мне ошибку:
Error CS1552 Array type specifier, [], must appear before parameter name
Справедливо, что должно быть легко исправить.
public static void tileStatusChecker(Tiles[] x)
{
Console.WriteLine("Position is {0}X and {1}Y. ID=={2}", x.cordX, x.cordY, x.tileID)
}
Теперь компилятор действительно сердитесь на меня: CS1061 «Плитки []» не содержит определение для «tileID» и без метода расширения «tileID» принимать первый аргумент типа "Плитка [] (вы не можете найти директиву или ссылку на сборку?)
Одновременно компилятор также злится на меня за вызов функции в первую очередь, объявление массива никогда не создавалось.
Tiles.tileStatusChecker(tileArray[7]);
CS0103 The name 'tileArray' does not exist in the current context
У меня есть стандарт «узнать C# и Visual Studio» книги рядом со мной, но массивов объектов не охвачены вообще. И я думаю, что фактическая ошибка здесь заключается в том, что я не знаю, что я делаю. Так может ли кто-нибудь сказать мне, как передать массив объектов методу? Я не хочу просто скопировать + вставить код и попросить кого-нибудь его исправить. Я попытался найти решение здесь в stackoverflow, но в итоге получилось 10,214 результатов после поиска «массив объектов C# для работы» или аналогичный.
Пожалуйста, уделите больше времени, чтобы отформатировать код. У вас нет отступов вообще, и в какой-то момент у вас есть тело метода в той же строке, что и '{'. Вы должны стремиться сделать этот вопрос максимально простым для чтения. –
Но похоже, что вы действительно не заинтересованы в передаче целого массива, а в одной плите. Просто измените 'Tiles []' на 'Tile', и это должно исправить обе проблемы. В конце концов, значение 'tileArray [7]' является ссылкой «Tiles», а не массивом ... и идея распечатать «положение массива» бессмысленна. Теперь было бы подходящее время для поиска соглашений об именах .NET. –
Ну, я предлагаю вам создать вашу среду IDE для форматирования кода и убедиться, что это похоже на вопрос. (Неясно, что такое Booleans ...) –