Реализация приложения Todo

Я новичок в C # и решил написать классическое приложение todo. Реализация моего приложения сейчас выглядит так: есть класс Task, который описывает задачу. Класс List одновременно действует как хранилище и имеет методы для создания, удаления и отображения задач. Насколько хорош этот подход, что можно сделать лучше (если возможно)? Мне нужен полный обзор кода.

Есть Program.cs:

using System;

namespace ToDo
{
    class Program
    {
        static void Main(string[] args)
        {
            List list = new List();
            list.AddTask("Task №1");
            list.AddTask("Task №2");
            list.AddTask("Task №3");
            list.AddTask("Task №4");
            list.AddTask("Task №5");
            list.WriteTasks();
            list.RemoveTask(2);
            list.WriteTasks();
        }
    }
}

List.cs:

using System;
using System.Collections.Generic;
using System.Text;

namespace ToDo
{
    class List
    {
        private List<Task> tasks = new List<Task>();
        public void AddTask(string body)
        {
            tasks.Add(new Task() { Body = body });
        }
        public void WriteTasks()
        {
            for (int i = 0; i < tasks.Count; i++)
            {
                Console.WriteLine($"[{i+1}]: {tasks[i].Body}");
            }

            Console.ReadKey();
        }
        public void RemoveTask(int number)
        {
            for (int i = 0; i < tasks.Count; i++)
            {
                if (number == i + 1)
                {
                    tasks.RemoveAt(i);
                }
            }
        }
    }
}

Task.cs:

using System;
using System.Collections.Generic;
using System.Text;

namespace ToDo
{
    class Task
    {
        public string Body { get; set; }
    }
}

1 ответ
1

В качестве очень простого приложения это нормально, однако, если программа станет более сложной, и вы захотите добавить базу данных и асинхронное программирование, вы столкнетесь с конфликтами с некоторыми именами классов. Например, класс Task предоставляется библиотекой C # для асинхронное программирование.

Если бы я собирался реализовать приложение со списком задач, у меня было бы еще несколько свойств для класса задачи, например:

  • Приоритет
  • Статус (не запущен, запущен, выполняется, завершен).
  • Срок
  • Имя
  • Описание

Это минимум, который я бы использовал, некоторые дополнительные свойства могут быть

  • Присвоен
  • Назначено

если это был многопользовательский список задач.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *