Есть ли оптимальный способ вставить DateTime в массив C# - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в C#, поэтому приветствую любую помощь.

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

public abstract class Courses
    {
        public DateTime CourseDate { get; set; }
        public int StreamID { get; private set; }
        public string CourseName { get; private set; }
        public int CourseID { get; private set; }
        public Courses(int courseID, int streamID, string courseName,DateTime courseDate)
        {
            this.CourseID = courseID;
            this.StreamID = streamID;
            this.CourseName = courseName;
            this.CourseDate = courseDate;
        }
    }

Это массив I ' m пытается поместить DateTime в.

Courses[] courses =
            {
                new Csharp(10, 3,"Basic C#", (11, 11, 10))
             }

идея состоит в том, что позже я могу перекрестно проверять элементы массива, чтобы убедиться, что курсы не выполняются в тот же день

Там будет больше, скажем, 10 элементов в примере массива

Если бы кто-нибудь мог мне помочь, это было бы потрясающе, или если было бы лучше просто установить его как строку для удобства.

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 19 июня 2020

Прежде всего, вы не можете создать экземпляр класса abstract. Вы можете использовать эту версию конструктора (год, месяц, день) для создания DateTime. и вы должны передать полное значение за год, а не две цифры. И это не должно быть CSharp.

Courses[] courses =
{
    new Courses(10, 3,"Basic C#", new DateTime(2011, 12, 29))
};
0 голосов
/ 19 июня 2020

Это не сработает, если вы не хотите передавать new DateTime(11, 11, 10) (например, год, месяц, день), вы можете создать специальный конструктор c, который имеет эти значения как отдельные аргументы:

    public Courses(int courseID, int streamID, string courseName,
       int courseYear, int courseMonth, int courseDay)
    {
        this.CourseID = courseID;
        this.StreamID = streamID;
        this.CourseName = courseName;
        this.CourseDate = new DateTime(courseYear, courseMonth, courseDay);
    }

Вам также необходимо предоставить этот конструктор в классах реализации (например, ваш Csharp класс), делегируя его базовому классу.

Тогда вы можете сделать:

        Courses[] courses =
        {
            new Csharp(10, 3,"Basic C#", 11, 11, 10)
         }
0 голосов
/ 19 июня 2020

Вы можете сделать это с помощью одного из множества конструкторов DateTime :

// set or replace year, month and day as desired
Courses[] courses =
{
    new Courses(10, 3, "Basic C#", new DateTime(year, month, day))
};
0 голосов
/ 19 июня 2020

Существуют различные конструкторы для DateTime . Например, если вы хотите установить год, месяц, день, час, минуту, секунду, вы можете использовать:

Courses[] courses =
            {
                new Csharp(10, 3,"Basic C#", new DateTime(2020, 6, 19, 15, 30, 0))
             }

Это создаст курс на 19 июня 2020 года в 15:30

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