C # WPF의 여러 클래스에서 인터페이스 메서드를 호출하는 방법은 무엇입니까? [복제]

Nov 12 2020

C # WPF에서 체스 게임을 만들려고합니다. 나는 모든 종류의 체스 조각에 대해 하나의 수많은 클래스를 가지고 있으며 모두 동일한 인터페이스를 구현합니다. 모든 조각 객체는 object [,] 유형의 2d 배열에 저장됩니다 (올바른 방법이 아니라는 느낌이 있음). Board [x, y] .ImgURI를 호출하여 모든 해당 이미지를 그리기 위해이 배열을 반복하고 싶지만 다음을 얻습니다.

CS1061 'object'에 'ImgURI'에 대한 정의가 포함되어 있지 않으며 'object'유형의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'ImgURI'를 찾을 수 없습니다.

 class Rook : Igamepiece{...}
 class King : Igamepiece{...}
 class Queen : Igamepiece{...}

 interface Igamepiece{
     public string ImgURI { get; set; }     //property that holds the image Uri
 }
 class Main{
     public object[,] Board = new object[8, 8];         //array containing objects of different types

     for (int y = 0; y < Board.GetLength(0); y++)
        {
            for (int x = 0; x < Board.GetLength(1); x++)
            {
                GameArea.Children.Add(new Image
                {
                    Source = new BitmapImage(new Uri(Board[x, y].ImgURI, UriKind.Relative)),
                    Width = SquareSize,
                    Height = SquareSize,
                    Margin = new Thickness(nextX, nextY, 0, 0)
                });
                nextX += SquareSize;
            }
                nextX = 0;
                nextY += SquareSize;
        }
 }           

 

답변

1 AndersonPimentel Nov 13 2020 at 02:45

그냥 변경 :

public object[,] Board = new object[8, 8]; 

에:

public Igamepiece[,] Board = new Igamepiece[8, 8];