У меня есть класс продукта в C#, который наследуется от другого класса продуктаПроблемы с явной отливкой
using ExternalAssemb.ProductA;
public class MyProduct : ProductA
{
//....
}
Я пытаюсь сделать явное приведение из ProductA, который находится в DLL я ссылаться, но это говорит мне, что это не в состоянии бросить
MyProduct myProduct = (MyProduct)productAobject;
Результат :: System.InvalidCastException: Не удается привести объект типа 'ExternalAssemb.ProductA' к типу 'MyAssembly.MyProduct'.
Что я делаю неправильно?
или явного оператора литья осуществляется для ' ProductA' – zerkms
@zerkms: Это правда, но это тоже отдельная вещь из естественного наследства. Ничто не мешает мне, чтобы «Aardvark» определял явное приведение к «Building», но это не имеет ничего общего с aardvarks, фактически являющимся зданиями. Вместо этого экземпляр «Aarvark» должен вернуть экземпляр «Building», возможно, создав его.Короче говоря, это похоже на кастинг, но это не «действительно» кастинг. –
, если я брошу MyProduct на ProductA, как мне добраться до свойств MyProduct. Должен ли я делать это каждый раз? ((MyProduct) ProductA) .MyProductProperty. – user204588