0

我正在尝试为虚构的电影院创建一个简单的面向对象程序。因此,我正在列出所有电影的清单。我的问题是我无法将流派添加到 Movies 类的子类中的流派数组中。

这是我到目前为止所做的。

using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BentesBio
{
    class Program
    {
        static void Main(string[] args)
        {
            Movie[] moviesArray = new Movie[6];

            moviesArray[0] = new FeatureFilm { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00, Genre = { "", "" }, Cast = {} };
            moviesArray[1] = new FeatureFilm { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00 };
            moviesArray[2] = new FeatureFilm { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00 };
            moviesArray[3] = new FeatureFilm { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00 };
            moviesArray[4] = new Documentary { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00, Theme = { "", "" } };
            moviesArray[5] = new Documentary { Director = "", Country = "", Budget = 0.0, BudgetCurrency = "", BudgetDKK = 0.0, Year = 0000, Score = "", Length = 00 };


            Console.ReadKey();
        }
    }

    class Movie
    {
        public string Director { get; set; }
        public string Country { get; set; }
        public double Budget { get; set; }
        public string BudgetCurrency { get; set; }
        public double BudgetDKK { get; set; }
        public int Year { get; set; }
        public string Score { get; set; }
        public int Length { get; set; }
    }

    class FeatureFilm : Movie
    {
        public string[] Genre { get; set; }
        public string[] Cast { get; set; }
    }

    class Documentary : Movie
    {
        public string[] Theme { get; set; }
    }
}

任何建议将不胜感激。

4

3 回答 3

1

在编程语言中,数组通常是固定大小的。如果您不喜欢该尺寸,则必须创建一个具有不同尺寸的新尺寸。如果你想要一个大小可变的容器,你可以在其中随意添加和删除元素,这通常称为列表。

在 C# 中,出于您的目的,那将是 aList<string>而不是string[].

于 2020-02-20T10:16:46.340 回答
1

代替 -

Genre = { "", "" }

和 -

Genre = new string[] { "", "" }

同样适用于Theme

是的,根据您应该使用的其他答案List<T>,您可以灵活地添加随机数量的电影,而不是预先声明的固定数量。

于 2020-02-20T10:21:19.600 回答
1

由于 Movie 没有 Genre,您应该将 Movie 类转换为 FeatureFilm 类以使用 Genre 属性。moviesArray 是电影数组。

于 2020-02-20T10:25:40.583 回答