» »

[c#] iz class v class

[c#] iz class v class

japol ::

V class Prerezi.cs imam:
 public class Lists
        {
            public List<string> List { get; set; }
            public List<string> List1 { get; set; }
            public List<string> List2 { get; set; }
            public List<string> List3 { get; set; }
            public List<string> List4 { get; set; }
            public List<string> List5 { get; set; }
            public List<Image> ListSlike { get; set; }
        }

        public void DodajVBazo(Form1 f1)
        {
            List<string> list = new List<string>();
            Lists lista = new Lists();

            List<string> list1 = new List<string>();
            List<string> list2 = new List<string>();
            List<string> list3 = new List<string>();
            List<string> list4 = new List<string>();
            List<string> list5 = new List<string>();

            List<Image> listslike = new List<Image>();

            lista.List = list;
            lista.List1 = list1;
            lista.List2 = list2;
            lista.List3 = list3;
            lista.List4 = list4;
            lista.List5 = list5;
}


Kako dostopam do teh listov (List1,..., lista,...) iz drugega classa (npr. iz Meni.cs)?

darkkk ::

Do katerih listov :) ?
Verjetno boš mel problem, če boš hotel dat Listu ime List, torej daj raje ime list :P

Uglavnem tale tvoj dodajVBazo bi moral bit kar konstruktor, ampak...

Lists seEnList=new Lists(); //klices default konstruktor
seEnList.DodajVBazo(f3); //f3 je pac neka forma
List<string> neMeJahatSeEnList = seEnList.list1; //dobis ven list1 iz instance seEnList, ki je razreda Lists.


Zgodovina sprememb…

  • spremenil: darkkk ()

japol ::

Poskusil sem tako:

 public void Shranitev2(Form1 f1)
        {
           Prerezi.Lists p = new Prerezi.Lists();
            SaveFileDialog saveFile1 = new SaveFileDialog();
            saveFile1.DefaultExt = "*.txt";
            saveFile1.Filter = "txt Files (*.txt)|*.txt|All Files (*.*)|*.*";
            if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && saveFile1.FileName.Length > 0)
            {
                StreamWriter sw = new StreamWriter(saveFile1.FileName);              
                for (int i = 0; i < int.Parse(f1.treeView1.Nodes.Count.ToString()); i++)
                {
                    f1.treeView1.SelectedNode = f1.treeView1.Nodes[i];                 
                    for (int j = 0; j < p.List.Count; j++)
                    {
                        sw.WriteLine(pp.lista.List[1].ToString());
                    }
                }
                sw.Close();
            }
        }

a mi javi da je list enak null. V resnici pa vsebuje podatke.

darkkk ::

Ti nikjer ne nafilaš tvojega Prerezi.Lists p-ja. Kliče se z default constructorjem, vsi memberji so null. (tj. p.List -> null)

Poleg tega v vrsti 10: f1.treeView1.Nodes.Count -> integer, ne rabiš tega to string pa parsat v int, ali?

Poleg poleg tega: vrsta 15, od kje se je pp vzel, kaj je to?

(če pa hočeš videt, kaj maš noter, daj si breakpointe med kodo :) )

japol ::

Potrebujem vsebino iz List1, List2,.... in list1, list2,... v nekem drugem classu (Meni.cs). Kako to naredim?

- pp je mišljen p
- z breakpointi si pa v tem primeru ne morem pomagati ker edino kar mi pove da je lista.list enaka null
- s klikom na nek gumb se zafilajo Lists in niso prazni.

Sedaj razmišljam če uporabim sledeče:

public class Lists
        {
            public List<string> List { get; set; }
            public List<string> List1 { get; set; }
            public List<string> List2 { get; set; }
            public List<string> List3 { get; set; }
            public List<string> List4 { get; set; }
            public List<string> List5 { get; set; }
            public List<Image> ListSlike { get; set; }
        }
 
        public void DodajVBazo(Form1 f1)
        {
            List<string> list = new List<string>();
            Lists lista = new Lists();
 
            List<string> list1 = new List<string>();
            List<string> list2 = new List<string>();
            List<string> list3 = new List<string>();
            List<string> list4 = new List<string>();
            List<string> list5 = new List<string>();
 
            List<Image> listslike = new List<Image>();
 
            lista.List = list;
            lista.List1 = list1;
            lista.List2 = list2;
            lista.List3 = list3;
            lista.List4 = list4;
            lista.List5 = list5;

            list.Add(f1.textBox35.Text);
            list.Add(f1.textBox36.Text);
            list.Add(f1.textBox37.Text);

 TreeNode node;
            node = f1.treeView1.Nodes.Add("P: " + f1.textBox35.Text);
            node.Nodes.Add("E: " + f1.textBox36.Text);
            node.Nodes.Add("Pr: " + f1.textBox37.Text);
            node.Tag = lista;
}

ampak tudi v tem pirmeru porebujem vsebino vseh "list1",... v nekem drugem classu.

darkolord ::

Liste lahko prebereš na isti instanci, na kateri kličeš DodajVBazo()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] shrani text, tabele, slike

Oddelek: Programiranje
251510 (1116) klemen93
»

C# tabela

Oddelek: Programiranje
51011 (863) Mitja Bonča
»

c# datagridview in combox

Oddelek: Programiranje
131208 (1096) OmegaM
»

[c#]: iz ascx v ascx

Oddelek: Programiranje
9835 (687) nuclear
»

c# base class, derived class, inheritance problem

Oddelek: Programiranje
91393 (1272) Vapo1

Več podobnih tem