Come posso cancellare o creare classi in fase di esecuzione C #? [chiuso]
-
27-09-2019 - |
Domanda
Ho fatto un programma che consentano una rappresentazione della conoscenza, la sua buona ma io cosa che potrebbe essere meglio se riesco a creare e distruggere le classi al volo.
Soluzione
Se si sta parlando di generazione di codice dinamico, ecco un link:
Altri suggerimenti
Dalla tua descrizione, sembra che non si vuole davvero creare classi C # in fase di esecuzione. Ciò che si vuole è una sorta di rappresentazione della conoscenza.
Non v'è alcuna risposta semplice a questo. Si tratta di un'area di ricerca sull'intelligenza artificiale. Vedere http://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning per un'introduzione.
Per me suona come si vuole imparare un po ' AI la programmazione e la rappresentazione conoscenza . Tuttavia questo è molto diverso dal creare classi in fase di esecuzione. Wikipedia fornisce una buona introduzione piuttosto l'argomento, ma nessun codice a tutti.
In C # 3.0 è possibile creare tipi anonimi, anche se, come sottolinea STW, questo non è definito in fase di esecuzione, ma il tempo di compilazione.
var myClass = new { A = 5, Id = "MyClass", num = 0.187f};
Console.WriteLine(myClass.Id);
Se stai cercando di creare effettivamente un nuovo tipo di classe al volo, una rotonda modo è quello di generare file di classe C #, compilarli in un assieme, e utilizzare la reflection per caricare le classi.