将对象转换为继承的对象

时间:2016-01-29 06:31:01

标签: c#

我正在开发一个与Netflix类似且涉及电影的程序。

我有一个来自我的程序使用的API的Movie Object /类。我像这样创建了一个Object的继承类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TMDbLib.Objects.Movies;
namespace Movie_Management.DATA
{
    class MyMovie: TMDbLib.Objects.Movies.Movie
    {
        public string Path { get; set; }
    }
}

以下是我从我使用的API中获取Movie对象的代码。

        TMDbLib.Objects.Movies.Movie movie = new TMDbLib.Objects.Movies.Movie();
        movie = MovieProcesses.loadTMDbLib(justMovieName);
        MyMovie myMovie = (MyMovie)movie;
        myMovie.Path = path;

        Cacher cache = new Cacher();
        cache.CacheVideo(myMovie);

我尝试将TMDbLib Movie转换为MyMovie对象。但它不起作用。在这种情况下我该怎么做?

{"Unable to cast object of type 'TMDbLib.Objects.Movies.Movie' to type 'Movie_Management.DATA.MyMovie'."}

2 个答案:

答案 0 :(得分:3)

您不能在继承层次结构中强制转换“向后”。你只能从电影到MyMovie,而不是相反。

如果要向现有Movie对象添加额外内容,请向MyMovie添加一个构造函数,该构造函数将Movie对象作为参数并手动复制成员变量。

答案 1 :(得分:0)

two keys

希望这些代码有帮助