Avatar billede nae Nybegynder
24. november 2006 - 08:12 Der er 6 kommentarer og
1 løsning

Problemer med Objecter

Jeg har et lille problem med følgende kode:

public Array Compare(string[,] input1, string[,] input2, string[,] input3)
    {
        // Array with missmatches
        string[,] DiffList = new string[(input1.Length / input1.Rank), 3];
        string[,] output = new string[(input1.Length / input1.Rank), 4];
        for (int i = 0; i < ((input2.Length / 3)); i++)
        {

            for (int j = 0; j < (input2.Length / 3); j++)
            {
                // Check if the site_codes matches
                if (input1[i, 0].ToString().ToLower() == input2[j, 0].ToString().ToLower())
                {
                    // Adding the devicename
                    output[i, 0] = input1[i, 1];
                    // Adding area code
                    output[i, 1] = input2[j, 1];
                    // Adding ip adress
                    output[i, 2] = input1[i, 2];                 
                }         
            }
        }
        for (int i = 0; i < (input1.Length / 2); i++)
        {
            for (int j = 0; j < (input3.Length / 2); j++)
            {
                if (input1[i, 0].ToString().ToLower() == input3[j, 1].ToString().ToLower() )
                {
                    // Adding service_class
                    output[i, 3] = input3[j, 0];
                    //Console.WriteLine(output[i, 3]);
                    //Console.WriteLine(output[i, 0]);
                    //Console.WriteLine(output[i, 1]);
                    //Console.WriteLine(output[i, 2]);

                }
                //}
            }
        }
     
        return output;
    }

Compileren brokker sig over "Object reference not set to an instance of an object" i følgende linie kode: "if (input1[i, 0].ToString().ToLower() == input3[j, 1].ToString().ToLower() )"
Jeg kan dog ikke se hvorfor der skal være en object reference når jeg bare skal compare forskellige inputs?
På forhånd tak
Avatar billede bulgroz Nybegynder
24. november 2006 - 09:02 #1
Når du kalder ToString().ToLower() forventer du jo at du har et objekt.

Har du et eksempel på et kald til metoden, og hvad forvnter du den skulle returnere?
Avatar billede nae Nybegynder
24. november 2006 - 09:16 #2
Ja okay, men hvorfor har jeg så ikke problemer i den første "if"-sætning? (if (input1[i, 0].ToString().ToLower() == input2[j, 0].ToString().ToLower())). Jeg modtager 3 inputs som både kan være tal og ord, problemet er at input1 og input2 er på en ca. længde på 1800 og input3 kun har en længde på ca 750, hvilket har skabt lidt problemer...
Avatar billede bulgroz Nybegynder
24. november 2006 - 09:31 #3
Ja men hvis der er data i dit array er der ingen problemer, men situationen er at du ukritiskt spørger på en "celle" i dit array og antager at den ikke er null!
Du bør lave nogle chacks i din kode for dette hvilket også gør det nemmer at debugge.

Hvis jeg skal kunne hjælpe dig yderligere må jeg have et kort eksempel på hvorledes dine data ser ud når dukalder din metode.
Avatar billede nae Nybegynder
24. november 2006 - 09:32 #4
Jeg ændrede til  if (input1[i, 0].CompareTo(input3[j, 1]) == 0) og så kunne jeg se at mine input1.ranks og input3.ranks var forkerte, og nu virker det. Hvis du lægger et svar får du dine point :)
Avatar billede bulgroz Nybegynder
24. november 2006 - 09:34 #5
Nej glem blot points, jeg har jo ikke svaret på noget.
Avatar billede nae Nybegynder
24. november 2006 - 09:36 #6
Okay, du må have en god weekend.
Avatar billede nae Nybegynder
14. september 2009 - 20:12 #7
Lukker tråden.
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