Я новичок в 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 ответ
В качестве очень простого приложения это нормально, однако, если программа станет более сложной, и вы захотите добавить базу данных и асинхронное программирование, вы столкнетесь с конфликтами с некоторыми именами классов. Например, класс Task предоставляется библиотекой C # для асинхронное программирование.
Если бы я собирался реализовать приложение со списком задач, у меня было бы еще несколько свойств для класса задачи, например:
- Приоритет
- Статус (не запущен, запущен, выполняется, завершен).
- Срок
- Имя
- Описание
Это минимум, который я бы использовал, некоторые дополнительные свойства могут быть
- Присвоен
- Назначено
если это был многопользовательский список задач.