Autor Beitrag
Nuckey
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: So 22.05.11 13:02 
folgendes beispiel:

in einer klasse (ohne C vorne) ,habe ich ein string array

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
public class Dings
{
  public string[];  //nur zur veranschaulichung 

}

Dingens test = new Dingens();

test = string.Split(...................

folgende grundbedingung : die grösse vom array (value) kann variable sein von 1 - ......
hier wäre (so sagt mein bauchgefühl) die zuweisung per = sinnvoll lieg ich doch richtig ?

weiteres beispiel.
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
public class AnderesDingens
{
   string[] entrys = new string[4]{"0","0","0","0"};

        public string Type
        {
            get { return this.objectid; }
            set { this.objectid = value; }
        }

        public string[] Entrys
        {
            get { return this.entrys; }
            set {
                if (value.Length >= 4)              //wenn value >= 4
                    Array.Copy(value, entrys, 4);
                else
                    value.CopyTo(entrys, 0);      // Value < 4
                }
        }

        public string entry0
        {
            get { return this.entrys[0]; }
            set { this.entrys[0] = value; }
        }

        public string entry1
        {
            get { return this.entrys[1]; }
            set { this.entrys[1] = value; }
        }

        public string entry2
        {
            get { return this.entrys[2]; }
            set { this.entrys[2] = value; }
        }

        public string entry3
        {
            get { return this.entrys[3]; }
            set { this.entrys[3] = value; }
        }
}

hier ist die arraygrösse festgelegt auf 4 und initialiesiert mit {"0","0","0","0"}.
hier ist die grundbedingung das die Arraygrösse nicht grösser oder kleiner werden darf als 4.

da aber es durch aus passieren kann das ,das neue array variable ist,bin ich zum schluss gekommen das es das beste wäre zu kopieren und es wäre resourcenverschwendung wenn das schon vorhandende array entrys entfernt werden würde.

ist diese annahme richtig oder gibt es noch einen anderen weg ?

mfg nuckey

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: So 22.05.11 15:57 
Hallo,
also so richtig verstehe ich nicht, was Du erreichen willst.
user profile iconNuckey hat folgendes geschrieben Zum zitierten Posting springen:

hier ist die arraygrösse festgelegt auf 4 und initialiesiert mit {"0","0","0","0"}.
hier ist die grundbedingung das die Arraygrösse nicht grösser oder kleiner werden darf als 4.
Wodurch soll das eine Bedingung sein? Ich kann doch ein Array mit beliebig vielen Elementen übergeben. Wenn Du mit dem Copy nur die ersten 4 übernimmst, ist das eine andere Sache. Und nicht sauber! Wenn Du erreichen willst, dass exakt 4 strings übergeben werden, wäre es besser, Du würdest Dir eine Klasse machen, die die 4 Strings als Properties hat, und Du nur noch ein Objekt davon setzen kannst bzw. zurücklieferst.

Und die Properties "entry0" bis "entry3" finde ich ziemlich sinnlos.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
public class AnderesDingens
{
  private Entrys entrys = new Entrys() { Entry0 = "0", Entry1 = "0", Entry2 = "0", Entry3 = "0" };
  public Entrys Entrys
  {
    get { return entrys; }
    set { entrys = value; }
  }
}

public class Entrys
{
  public string Entry0 { get; set; }
  public string Entry1 { get; set; }
  public string Entry2 { get; set; }
  public string Entry3 { get; set; }
}

LG
Nuckey Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: So 22.05.11 19:26 
ja an sich schon wenn die string split(....),der string array je nach inhalt ,eine variable arraygrösse gaben kann

aber manchmal ich nur eine bestimmte grösse übernehmen kann und darf.

wo es nicht drauf ankommt setze ich entrys = string.Split() ,aber eben halt nicht immer ,da müssen manchmal die ersten 4 oder 5 einträge übernommen werden ohne das die ref. von entry überschrieben werden darf.

und so bin ich unsicher ,welcher nun der eff. weg ist.

mfg nuckey
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 22.05.11 20:23 
Zitat:
ohne das die ref. von entry überschrieben werden darf.


Weil? Gefühlt scheinst du ein Konzept entsprechend irgendeiner anderen Sprachen umsetzen zu wollen das hier aber nicht passt.
Nuckey Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: Mi 25.05.11 05:17 
@ ralf jansen,komme aus der c/c++ ecke bin noch nicht vollständig mit dehn sonderheiten von c# vertraut.

mitlerweile prüfe ich auf die grösse des "ankommenden array´s" is diese gleich wird nur die ref. kopiert
ansonsten per kopie die festgelegten anzahl der daten aus diesem.

mfg nuckey