webForumDet fria alternativet

konvertera objekt med samma struktur

.NET

4 svar · 682 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Har två klasser med exakt samma fält- och egenskapstyp.
Nu vill jag konvertera ett objekt av den ena sorten till den andra, vad finns att tillgå då?

class foo
{
     private string bla;
     private bool ble;
    
     public string Bla
     {
          ...
     }

     public bool Ble
     {
          ...
     }
}

class bar
{
     private string tjo;
     private bool tjim;
    
     public string Tjo
     {
          ...
     }

     public bool Tjim
     {
          ...
     }
}
foo obj1 = new foo();
bar obj2 = obj1.???
Medlem sedan juni 20008 205 inlägg
#2

Finns inget automatiskt sätt att göra det på eftersom fälten heter olika saker och inte har nåt gemensamt arv. Inte mycket mer att göra än att säga typ

foo obj1 = new foo();
bar obj2 = new bar();
obj2.Tjo = obj1.Bla;
obj2.Tjim = obj1.Ble;

Sen kan du ju börja hålla på att använda reflection och göra nån form av mappning från den ena typen till den andra, om det verkar roligare.

Medlem sedan juni 20003 076 inlägg
#3

oki! :)

Medlem sedan maj 20012 812 inlägg
#4

Om du tittar en hel del på Serializering och XML så tror jag du kan göra samma sak, men det kräver att du markerar de olika properties med attribute så de får samma namn i "XML-världen". Men som sagt det är ju lite programmering i högre skolan för att få det att fungera mellan 2 helt olika klasser, men bör gå. (om inte annat så är det ju ett bra läroexempel...)

- M

Medlem sedan juni 20003 076 inlägg
#5

Ok, tack Gladh.
Då vet jag i alla fall att det bör gå och vad jag bör använda.
Ska plugga på när tillfälle ges! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)