Avatar billede flextor Nybegynder
07. september 2005 - 15:09 Der er 6 kommentarer

Returnering af et objekt

Hej Eksperter

Jeg har en klasse som sætter nogle værdier i en ArrayList i en anden klasse.

I klassen med arraylisten gemmer jeg værdierne som objekter.

Problemet er så at jeg gerne vil returnere objektet som ligger i arraylisten til min første klasse, og derefter hente de variabler ud som ligger i objektet.

Er der nogen som er frisk på at give et bud på en løsning.
Avatar billede Slettet bruger
07. september 2005 - 15:28 #1
Den metode du kalder i den anden klasse og som står for oprettelsen af objekterne, skal være af typen DitObjekt (hvor DitObjekt er den type dine objekter er).
Herefter kan du - afhængigt af din kode i den kaldte klasse lave en return DitObjekt fra metoden.

Fra den klasse der skal bruge objektet igen kan du så sige:
AndenKlasse klasse = new AndenKlasse();
Ditobjekt objekt = klasse.MetodeIDenAndenKlasse();

Håber det kunne være med til at hjælpe dig på vej.
Avatar billede Slettet bruger
07. september 2005 - 15:30 #2
Glemte lige at sige at metoden, der returnerer dit objekt skal være:

public DitObjekt OpretObjekt(ArrayList arList)
{
arList bla bla bla
DitObjekt.Test1 = arList[x];
osv osv.

return DitObjekt;
}
Avatar billede flextor Nybegynder
08. september 2005 - 09:28 #3
Det kan ikke helt få det til at virke...
Jeg sender lige den kode som jeg har:

public class SongListHolder
        {
            private static System.Collections.ArrayList a1 = new System.Collections.ArrayList();
            public void SetSongList(int Cluster, string Filename)
            {               
                a1.Add(new DataAddress(Cluster, Filename));
               
            }
            public object GetSongList()
            {               
                return a1[0];
            }
        }

        public class DataAddress
        {
            public int Cluster;
            public string FileName;

            public DataAddress(int Cluster, string FileName)
            {
                this.Cluster = Cluster;
                this.FileName = FileName;
            }
        }

Der hvor jeg kalder det hele fra sætter jeg både noget i arraylisten og beder om at få det retur.

objBroto.SongListHolder Songs = new Broto_Remote.objBroto.SongListHolder();
Songs.SetSongList(323, "mfil.mp3");
test =  Songs.GetSongList();

Problemet er så bare at jeg gerne vil have de værdier fra arraylisten som ligger i det objekt de er placeret i.
Avatar billede Slettet bruger
08. september 2005 - 11:25 #4
Jeg kan ikke overskue hvad du præcist vil lave, men det korte og det lange er vel at du sender værdier til en metode i en klasse der opretter et nyt objekt af den type og indsætter objektet i en arraylist.
Du vil så gerne kunne kalde en metode i klassen med arraylisten, hvor der så hentes et givent opbejt ud fra arraylisten, som returneres til den kaldende metode. Er dette forstået korrekt?

// Klasse A
public class KlasseA
{
private int cluster;
private string filename;

// ***********************************
// Konstruktør - tom i dette tilfælde
// ***********************************
public KlasseA()

// ***********************************
// SendValues()
// ***********************************
private void SendValues
(
this.cluster = Convert.ToInt32(textboxCluster.Text);
this.filename = textboxFilename.Text;

KlasseB = b = new KlasseB();
b.InsertIntoArrayList(cluster, filename);
)

// ***********************************
// Printvalues() - udskriver værdier for objektet
// ***********************************
private void PrintValuesFromObject
(
DitObjekt objekt = new DitObjekt();
KlasseB b = new KlasseB();

objekt = b.GetObject(cluster)

int value1 = objekt.Value1;
string value2 = objekt.Value2;

// Udskriv værdierne til labels eller send dem videre...

)
}

-------------------------------------------------------------------

// Klasse B
public class KlasseB
{
private ArrayList a1;

// ***********************************
// Konstruktør - opretter arraylist
// ***********************************
public KlasseB
(
a1 = new ArrayList();
)

// ***********************************
// Her oprettes et nyt objekt der returneres
// ***********************************
public DitObjekt InsertIntoArrayList(int cluster, string filename)
{
DitObjekt objekt = new Ditobjekt()
objekt.Value1 = cluster;
objekt.Value2 = filename;

a1.Add(DitObject);

return objekt;
}
}

Ved ikke om det hjalp dig. Du spurgte om hvordan man returnerer et objekt og sådan plejer jeg i hvert fald at gøre det :-)
Avatar billede runesoft Nybegynder
08. september 2005 - 12:35 #5
public IList GetSongList()
{               
  return a1;
}
Avatar billede runesoft Nybegynder
08. september 2005 - 12:37 #6
eller:

DataAdress test = (DataAdress)GetSongList();

Men i så fald bør du ikke returnere object, men DataAdress
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester