Praticamente io ho fatto una libreria per lavorare con dei file di un gioco, sucessivamente ho voluto fare un programma con DirectX che crea oggetti 3d dai dati ricavati usando le funzioni della libreria.
Nel caso specifico ottendo un array di classe "Base" dalla libreria, ma nel programma con DirectX vorrei semplicemente creare una equivalente classe "Derived" con implementato delle funzioni in più per fare il rendering ecc...
La cosa potrebbe essere risolta in altro modo, ad esempio così:
public class Base
{
public int i = 0;
public void methodA() { }
public void methodB() { }
}
public class Derived
{
public Base obj;
public void methodC() { }
public Derived(Base Obj) { this.obj = Obj; }
}
ma volevo comunque convertire senza troppe operazioni o creare nuove instance, ad esempio
// uso normale della funzione per ottenere l'array oggetti
Base[] oggetti = (Base[])Libreria.Funzione();
// uso della funzione in altro programma
Derived[] oggetti = (Derived[])Libreria.Funzione();