невозможно преобразовать из ListMapColor.MyContainer в System.Drawing.Color - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь добавить список с помощью Hashset.

что я пытаюсь сделать? Я пытаюсь нанести на карту Haset Color какой-то фрагмент изображения

Почему? Потому что я хочу сравнивать цвета списка хеш-наборов в реальном времени, и мне нужна моя собственная библиотека, чтобы ускорить процесс в реальном времени для сравнения изображений

Изучал ли вы Inte rnet? Да, но я не нашел кое-что об использовании цветов хеш-набора с помощью ADD.

Я сделал пример, кому-то может помочь, пожалуйста.

public class ListMapColor
{


    public class MyContainer
    {
        public Color Number { get; set; }
        public Color Name { get; set; }
        public MyContainer(Color number, Color name)
        {
            Number = number;
            Name = name;
        }
    }

    public HashSet<Color> Battle(HashSet<Color> colors)
    {

        return colors.Add( new MyContainer (Color.FromArgb(255, 47, 47, 47), Color.FromName("ff2f2f2f") );

    }


}

1 Ответ

0 голосов
/ 28 мая 2020

В исходном опубликованном коде у вас есть ошибка типа, о которой вам сообщает исключение. Он ожидает объект Color, а вы даете ему объект MyContainer, и нет способа конвертировать между ними.

В моем комментарии предлагается изменить ваш код на следующий:

public class ListMapColor
{


   public class MyContainer
   {
       public Color Number { get; set; }
       public Color Name { get; set; }
       public MyContainer(Color number, Color name)
       {
           Number = number;
           Name = name;
       }
   }

   public HashSet<MyContainer> Battle(HashSet<MyContainer> colors)
   {

       return colors.Add( new MyContainer (Color.FromArgb(255, 47, 47, 47), Color.FromName("ff2f2f2f") );

   }


}

Это исправит ошибку типа. Если вам нужен объект HashSet of Color, вам нужно добавлять объекты Color, а не объекты MyContainer.

Я не уверен, зачем вам это нужно.

Кажется, вы можете хотите что-то вроде:

    HashSet<Color> myColors = new HashSet<Color>();

    myColors.Add(Color.FromArgb(255,47,47,47));
    myColors.Add(Color.FromName("ff2f2f2f"));
    myColors.Add(Color.FromName("AliceBlue"));

Затем вы можете получить доступ ко всем методам Color, которые могут вам понадобиться:

    foreach(Color color in myColors)
    {
        Console.WriteLine(color.Name);
        Console.WriteLine(color.IsKnownColor);
        Console.WriteLine(color.ToArgb());
        Console.WriteLine(color.IsNamedColor());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...