c# - 将对象转换为继承对象

标签 c#

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

我有一个来 self 的程序使用的 API 的电影对象/类。我像这样创建了那个对象的继承类。

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'."}

最佳答案

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

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

关于c# - 将对象转换为继承对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078251/

相关文章:

c# - foreach如何调用GetEnumerator()?通过 IEnumerable 引用还是通过...?

c# - MediaInfo 在 C# 中动态检查 AudioStreams

c# - 记录代码更改

c# - 为什么 TaskScheduler.FromCurrentSynchronizationContext 在 Monotouch 中不同步?

c# - Wpf DataGrid DoubleClick 有奇怪的行为

c# - WebForms 模型绑定(bind) : Automatically map updated values to Item

c# - "s"作为格式说明符有什么作用?

c# - 使用 Blazor 进行客户端验证

c# - 如何解释 Math.Acos() 报告无效输入的情况?

c# - 我是否破坏了 StringBuilder 的效率?