Не удается неявно преобразовать тип 'system.collections.generi c .list в - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в C#. Я пытаюсь создать свойство, которое создает новый список «результат» (тип данных Shape), чтобы затем l oop через него, и если щелкнуть мышью, это добавит форму, найденную в списке, к «результату» список, а затем вернуть «результат». Однако я получаю следующую ошибку:

Cannot implicitly convert type 'system.collections.generic.list<ShapeDrawer.Shape> to <ShapeDrawer.Shape>

Это мой код:

    public  Shape SelectedShapes
    {
        get
        {
            List <Shape> result = new List<Shape>();
            foreach (Shape s in _shapes)
            {
                if(s.selected == true)
                {
                    result.Add(s);
                }
            }

            return result;
        }
    }

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Тип возврата вашего SelectedShapes свойства не совпадает с тем, что вы на самом деле возвращаете из метода доступа get. Вы возвращаете List <Shape> объектов из вашей собственности, но ваша собственность возвращает Shape object. Измените свою подпись собственности с

public Shape SelectedShapes{//your code}

на

public List<Shape> SelectedShapes{//your code}
0 голосов
/ 10 апреля 2020

Как прокомментировал Селвин: вы пытаетесь вернуть List<Shape>, в то время как ваш тип возврата

public Shape SelectedShapes

либо изменить на: public List<Shape> SelectedShapes

или если Вы хотите вернуть только тот, который выбран тогда:

public  Shape SelectedShapes
{
    get
    {
        foreach (Shape s in _shapes)
        {
            if(s.selected == true)
            {
                return s;
            }
        }

        return null;
    }
}
0 голосов
/ 10 апреля 2020

Я думаю, вам нужно изменить тип свойства yor с Shape на List of Shapes или вернуть результат [index]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...