Работа с полями экземпляра C#

87
12 декабря 2020, 17:20

Есть класс Options с несколькими листиками и другой класс Form1. Создан экземпляр класса Options в классе Form1. Как начать работу с полями этого экземпляра(Array, ColorPenBrush, Thickness)?

class Options
{
    public List<Point> Array { get; set; }
    public List<Color> ColorPenBrush { get; set; }
    public List<String> Thickness { get; set; }
}
class Form1
{
    Options options = new Options();
    //далее пример работы
    Point point1;
    point1.X = 100;
    point1.Y = 200;
    options.Array.Add(point1);
}
Answer 1

Вы не сделали инициализацию своих списков в классе Options. Это можно сделать например в его конструкторе:

class Options
    {
        public List<Point> Array { get; set; }
        public List<Color> ColorPenBrush { get; set; }
        public List<String> Thickness { get; set; }
        public Options()
        {
            Array = new List<Point> ();
            ColorPenBrush = new List<Color>();
            Thickness = new List<String>();
        }
    }
Answer 2

В новых версиях C# существуют Инициализаторы автосвойств:

class Options
{
    public List<Point> Array { get; set; } = new List<Point>();
    public List<Color> ColorPenBrush { get; set; } = new List<Color>();
    public List<String> Thickness { get; set; } = new List<String>();
}
READ ALSO
Как связать две таблицы в sql?

Как связать две таблицы в sql?

Нужно связать фильм и пользователей, которые его смотрелиДумал насчет того, чтобы сделать связь "один ко многим" по id пользователей, но не уверен,...

135
Удаление сделки amoCRM

Удаление сделки amoCRM

как можно удалить сделку в amoCRM API для PHP?

105
Не работают миграции с DB

Не работают миграции с DB

Не работает миграция в laravel с СУБД Попытки найти самостоятельно причину не увенчались успехом , жду помощи или подсказок от всех желающих

128
Не подтягиваются стили при работе в Docker

Не подтягиваются стили при работе в Docker

Классinde не получает стиль из main

124