Transmitir um objeto para um objeto de uma classe derivada
Eu tenho uma aulaRecord
isso funciona bem:
public class Record
{
protected string table;
protected string idcolumn;
public Record(string _table, string _idcol, int _id)
{
table = _table;
idcolumn = _idcol;
Id = _id;
}
}
Eu também tenho uma aulaOrder
que é derivado deRecord
, que implementa métodos extras, aplicável apenas em um determinado tipo de registro:
class Order : Record
{
public void Start()
{
}
}
Na minha aplicação, eu tenho um objetotheRecord
do tipoRecord
que eu quero lançar paraOrder
, para que eu possa ligar para oStart
método sobre ele.
Eu tentei lançá-lo:
Order r = (Order)theRecord;
mas isso lança umInvalidCastException
.
Eu estou pensando que eu poderia criar um novo construtor paraOrder
que leva umRecord
, mas eu já tenho o objeto (que é construído por buscar um registro do banco de dados).
Como eu poderia implementar isso corretamente?