Avatar billede havmaage Juniormester
08. marts 2011 - 19:57 Der er 8 kommentarer og
1 løsning

initialize object med simpelt array af typen int

Hejsa jeg sidder og roder lidt med at initalisere mit object cir_list med et array ( eller rettere en tal række der skal lægges ind i et array.
jeg tænkte at det må kunne gi sig på en eller anden måde men jeg kan ikke rigtig finde den.

class cir_list
    {
        int [] x;
        int [] y;
        public  cir_list(int [] list1, int [] list2 )
        {
        x = list1;
        y = list2;

       
       
        }
    }
    class test
    {
        public static void Main()
        {
         
            cir_list list = new cir_list(1, 2);
           
        }

    }
Avatar billede Syska Mester
08. marts 2011 - 20:16 #1
1 og 2 er jo ikke et array

du kan gøre:
int[] array = new int[] {10, 20, 30, 40, 50 };

og sende array med som parameter.

Men hvad er du præcist du vil ?
Avatar billede havmaage Juniormester
08. marts 2011 - 21:02 #2
Jeg ville egenligt gøre noget lignende

når jeg opretter et objekt af klassen cir_list skal den initaliseres med talrækker i array x og array y



  class cir_list
    {
        int [] x;
        int [] y;
        public  cir_list(int [] list1, int [] list2 )
        {
        x = list1;
        y = list2;

       
       
        }
    }
class test
    {
        public static void Main()
        {
         
            cir_list list = new cir_list({1,2,3,4,5}, {1,2,3,4,5});
           
        }

    }
Avatar billede Syska Mester
08. marts 2011 - 21:12 #3
Korteste du kan gøre det til vil jeg tro er:
new[] {10, 20, 30} <- Via type inference bliver det til integers.

Enumerable.Range(1, 21).ToArray(); <- Laver en række fra 1 til 20

Men igen ... skal det være en række af tal der hænger sammen ?

Hvis du kommer med lidt mere info hvad du prøver på, kan jeg bedre hjælpe.

mvh
Avatar billede havmaage Juniormester
08. marts 2011 - 21:27 #4
Det er "bare" et problem for mig at jeg ikke kan finde ud af at oprette et object som skal have 2 talrækker, jeg ønsker at kunne bestemme disse talrækker da de skal bruges til at lave nogle matematiske øvelser. I grunden kunne jeg godt hardcode dem direktei klassen men synes det er mere interessant at kunne oprette 2 arrays med talrækker direkte når objektet oprettes.
Avatar billede Syska Mester
08. marts 2011 - 21:42 #5
cir_list list = new cir_list(new int[]{1,2,3,4,5}, new int[]{1,2,3,4,5});
Avatar billede havmaage Juniormester
08. marts 2011 - 22:07 #6
hejsa det fejler ikke længere på syntaks så et eller andet sker der, men mit problem er nu  at

x og y aldrig bliver assigned

public cir_list(int[] list1, int[] list2)
        {
            x = list1;
            y = list1;
       
       
        }
Det er simpelthen ikke assigned
jeg tænker det er fordi man ikke bare kan tage et array og sætte det lig et andet array jeg kan vel assigne dem ved at lave et for loop og indsætte et element ad gangen

ikke rigtig kode :-) bare ideen 
int t =0;
for ( int i = 0; i<= list1.length;i++)
  x[t] = i;
  t++;
Avatar billede Syska Mester
08. marts 2011 - 22:15 #7
Jo, du kan godt assign et array til et andet.

using System;

namespace ReadingAnXmlDocument
{
    public class ArrayTest
    {
        public int[] x;
        public int[] y;

        public ArrayTest(int[] list1, int[] list2)
        {
            x = list1;
            y = list2;
        }

        public void Print()
        {
            foreach (int i in x)
            {
                foreach (int z in y)
                {
                    Console.WriteLine("{0} * {1} = {2}", i, z, i * z);
                }
            }
        }
    }
}

og kode til at test overstående:

var arrayTest = new ArrayTest(new int[] { 10, 20, 30 }, new int[] { 40, 50, 60, 70, 80 });
            arrayTest.Print();
Avatar billede havmaage Juniormester
08. marts 2011 - 22:21 #8
super super super
hmmm var det fordi jeg ikke havde public på x og y i klasse hovedet ?
Avatar billede Syska Mester
08. marts 2011 - 22:28 #9
ahhh,

Well, du bør også bruger properties og ikke fields.

Altså:
public int[] X{get; set;}
public int[] Y{get; set;}

Eventuelt med et backing field, men det er en anden sag.

Jeg smider et svar.
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