29. september 2009 - 21:01
Der er
11 kommentarer og 1 løsning
hente en array fra en object variabel?
Okay dette er et rimlig dumt spørgsmål, men jeg er gået helt kold i dette problem.. jeg har et public object GetCard(int) return new object {int,string,string,bool} som jeg henter igennem en lang række objecter.. den ender os som den skal, i mit main loop, med object test = CD.GetCard(1) som jeg kan se med breakpoint laver mig et fint object, med mine data i - test {object[4]} object {object[]} [0] 2 object {int} [1] "To" object {string} [2] "Hjerter" object {string} [3] false object {bool} men hvordan kan jeg med test objectet, lave dem om igen til læsligt? jeg har det lige på tungen, men kan bare ikke komme rundt om det
Annonceindlæg fra HP
29. september 2009 - 21:11
#1
Du kan caste det til object[] og saa caste de enkelte elementer til int/string/string/bool. Eller bedre: lade den metode returnere en struct eller class med nogle relevante properties.
29. september 2009 - 21:22
#2
har ingen ide hvordan man gør nogen af delene, og jg kan jo se dem at de er der, helt finde og klare.. er bare underligt man så ikke kan trække dem ud
29. september 2009 - 21:28
#3
object test = ...; object[] test2 = (object[]) test; int test2_1 = (int)test2[0]; ...
29. september 2009 - 21:28
#4
men som sagt skal det gribes anderledes an !
29. september 2009 - 21:31
#5
kan du give et eksempel da?
29. september 2009 - 22:07
#6
Ja. Senere.
30. september 2009 - 02:00
#7
using System; namespace E { public class Data { public int Iv { get; set; } public double Xv { get; set; } public string Sv { get; set; } public bool Bv { get; set; } } public class Program { public static object M1() { return new object[] { 123, 123.456, "ABC", true }; } public static Data M2() { return new Data { Iv=123, Xv=123.456, Sv="ABC", Bv=true }; } public static void Main(string[] args) { // den forkerte måde object res1 = M1(); object[] res1a = (object[])res1; int res1a0 = (int)res1a[0]; double res1a1 = (double)res1a[1]; string res1a2 = (string)res1a[2]; bool res1a3 = (bool)res1a[3]; Console.WriteLine(res1a0 + " " + res1a1 + " " + res1a2 + " " + res1a3); // den rigtige måde Data res2 = M2(); Console.WriteLine(res2.Iv + " " + res2.Xv + " " + res2.Sv + " " + res2.Bv); Console.ReadKey(); } } }
30. september 2009 - 07:48
#8
du er en gud arne_v, ligger du et svar? :)
30. september 2009 - 09:02
#9
vis jeg nu gerne vil sende mit Data object igennem en Metode, kan man så det? public CardData GetCardFromDeck(int i) { return new CardData { arCard[i].GetCard() }; } virker ikke rigtigt
30. september 2009 - 09:18
#10
hov, det skulle os være public CardData GetCardFromDeck(int i) { return arCard[i].GetCard(); }
30. september 2009 - 13:14
#11
Hvis arCard er et Card[] boer du kunne: public CardData GetCardFromDeck(int i) { return arCard[i]; }
30. september 2009 - 13:14
#12
Og et svar
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.