"Tiles"라는 클래스가 있습니다.함수 배열에 객체 전달
public class Tiles
{
public int cordX, cordY, tileID;
Booleans someBooleans;
public constructor(int X,int Y,int ID)
}
프로그램 타일 클래스의 오브젝트의 배열을 2 차원 그리드 정보를 저장 (XY 위치, tileID)를 생성한다. 이처럼 :
예상대로
tileArray[X + Y] = new Tiles(xPos, yPos, ID);
지금까지 모든 것이 작동하고있는 객체 배열의 개별 요소의 인스턴스를 두 번을 통해 새로운 개체 배열을
Tiles[] tileArray = new Tiles[totalGridSize];
루프를 만듭니다. 하지만 지금은 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'형식의 첫 번째 인수를 받아들이는 '타일 [] 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) 동시에 컴파일러는 처음에는 배열을 만들지 않았다고 선언하면서 함수를 호출하기 위해 저에게 화를 냈습니다.
CS0103 The name 'tileArray' does not exist in the current context
Tiles.tileStatusChecker(tileArray[7]);
나는 표준이 전혀 포함되지 않은 내 옆에 있지만, 객체 배열에 책을 "C# 및 Visual Studio를 배울 수"있습니다. 그리고 나는 실제적인 실수가 내가하는 일을 정말로 모르고 있다고 생각합니다. 그래서 누구나 메서드 배열에 개체 배열을 전달하는 방법을 말해 줄 수 있습니까? 코드를 복사 + 붙여 넣기를하고 누군가 나를 위해 고칠 수는 없습니다. stackoverflow에 대한 해결책을 찾으려고했지만 "C# object array to function"을 검색 한 후 10,214 개의 결과가 나왔습니다.
코드 서식을 지정하는 데 시간이 더 걸릴 수 있습니다. 들여 쓰기가 전혀 없으며, 어느 시점에'{'와 같은 줄에 메서드의 본문이 있습니다. 가능한 한 쉽게 질문을 읽으려고 노력해야합니다. –
그러나 전체 배열, 단일 타일을 전달하는 데 정말로 관심이없는 것 같습니다. 'Tiles '를'Tile'로 바꾸면 두 가지 문제를 모두 해결할 수 있습니다. 결국, tileArray [7]의 값은 배열이 아닌'Tiles' 참조이며 ... "배열의 위치"를 출력한다는 아이디어는 의미가 없습니다. 이제는 .NET 명명 규칙을 찾아 볼 좋은 시간이 될 것입니다. –
글쎄, 코드를 포맷하고 질문에 IDE가 표시되도록 IDE를 가져 오는 것이 좋습니다. (부울이 무엇인지 명확하지 않다.) –