Я работаю над программой, похожей на Netflix, и включает фильмы.Преобразование объекта в унаследованный объект
У меня есть объект/класс фильма из 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; }
}
}
Вот код, где я получаю объект Movie из API, который я использую.
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 в объект MyMovie. Но это не работает. Что я должен делать в этой ситуации?
{"Unable to cast object of type 'TMDbLib.Objects.Movies.Movie' to type 'Movie_Management.DATA.MyMovie'."}
Ну, вы можете бросить «назад», который называется понижающее приведение. Вот почему OP имеет ошибку времени выполнения - он может использовать, но кастинг ошибочен. – ixSci
Что такое правильное литье? – Illuminati
@Illuminati, вы можете использовать 'Movie' для' MyMovie', если ссылка типа 'Movie' указывает на объект' MyMovie' или его потомка (которого у вас нет). – ixSci