Esiste un linguaggio di programmazione per supportare l'esplicita copia dell'oggetto a livello di proprietà?
Ad esempio, supponi questo codice:
public class Student
{
public string Name { get; set; }
public string Code { get; set; }
public List<string> Interests { get; set; }
}
public class Item
{
public string Name { get; set; }
public string Code { get; set; }
}
Mi chiedo se ci sia un compilatore (o una lingua) là fuori che può indirettamente lanciare due oggetti tra loro, in base alla corrispondenza a livello di proprietà e un algoritmo di trasformazione con perdite?
- Crea un'istanza della classe di destinazione
- Utilizzando reflection, trova tutte le proprietà della classe di destinazione
- Per ogni proprietà, prova a trovare una corrispondenza nella classe di origine, utilizzando il nome e il tipo
- Se trovato, trasferisci il valore
- Altrimenti, inizializza al valore predefinito
Ovviamente, questo dovrebbe essere fatto esplicitamente con la piena intenzione dello sviluppatore. Ad esempio, una pseudo-sintassi C # potrebbe essere simile a:
Student student = new Student();
student.Name = "Saeed";
student.Code = "513223";
Item item = copy student; // assume "copy" to be a keyword
// Here, item's name is "Saeed" and its code is "513223"