Forum: PC-Programmierung c# Werte automatisch aufeinander anpassen


von Fuzzi59 (Gast)


Lesenswert?

Hallo,
ich habe folgendes Problem:
ein int-Array,ein char-Array, und eine string-Variable
Das int-Array hat die Dezimalwerte der Zeichen im char-Array und das
char-Array die einzelnen Zeichen der string-Variable.
Wenn ich jetzt einen Wert im int-Array änder sollen sich die Werte im
char-Array und der Text der string-Variable automatisch an das int-Array 
anpassen. Andersherum soll es natürlich auch funktionieren.

von nicht"Gast" (Gast)


Lesenswert?

Hi,


warum bleibst du nicht bei nur einem Speicher und konvertierst in den 
jeweils gebrauchten wert?

Spart nebenbei Speciher und rechenzeit.

PD: Groß und kleinschreibung ist mit absicht Beliebig

von Flughafen (Gast)


Lesenswert?

Warum hast du denn so viele Variablen und Arrays? Es würde doch eines 
reichen, aus dem das Programm die restlichen Werte auslesen kann. Wie 
hast du denn die Werte erzeugt?

von Flughafen (Gast)


Lesenswert?

nicht"Gast" schrieb:
> Groß und kleinschreibung ist mit absicht Beliebig

lies dir mal den Text über der Eingabe durch. Da steht:

Wichtige Regeln - erst lesen, dann posten!

    Groß- und Kleinschreibung verwenden.
    Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang.

Groß- und Kleinschreibung sollte nicht nur verwendet, sondern richtig 
verwendet werden.

nicht"Gast" schrieb:
> warum bleibst du nicht bei nur einem Speicher und konvertierst in den
> jeweils gebrauchten wert?

Dem stimme ich zu.

von Fuzzi59 (Gast)


Lesenswert?

Alle drei sind Eigenschaften einer selbsterstellten Klasse  und wenn ich 
die Klasse in einem Programm verwende sollen die Werte angepasst werden, 
wenn ich einen änder. Wenn die die Werte sich nicht anpassen sind sie 
falsch und das Programm würde falsche Ergebnisse "ausspucken".

von Peter II (Gast)


Lesenswert?

Fuzzi59 schrieb:
> Alle drei sind Eigenschaften einer selbsterstellten Klasse  und wenn ich
> die Klasse in einem Programm verwende sollen die Werte angepasst werden,
> wenn ich einen änder. Wenn die die Werte sich nicht anpassen sind sie
> falsch und das Programm würde falsche Ergebnisse "ausspucken".

denn stelle es so um, das es intern nur eine liste gibt. Dann kann es 
auch nicht zu Abweichungen kommen. Doppellette Datenhaltung ist immer 
mist.

von Flughafen (Gast)


Lesenswert?

1
int i = 42;
2
char c = Convert.ToChar(i);
So kannst du generell einen int in einen Char umwandeln.
Es gibt leider keine Funktion, die beim Ändern einer Variable etwas 
ausführt. Deshalb must du entweder selbst eine schreiben oder eine 
Funktion schreiben, die du nach erfolgter Änderung aufrufst.

von Peter II (Gast)


Lesenswert?

Flughafen schrieb:
> Es gibt leider keine Funktion, die beim Ändern einer Variable etwas
> ausführt.

indirekt schon, nennt sich Property.

x.i = 12;

führ die Set Methode in x für i aus.

von Fuzzi59 (Gast)


Lesenswert?

Flughafen schrieb:
> int i = 42;
> char c = Convert.ToChar(i);
Das weiß ich wohl.

Flughafen schrieb:
> Deshalb must du entweder selbst eine schreiben oder eine
> Funktion schreiben, die du nach erfolgter Änderung aufrufst.
Kann ich eine Funktion, denn hier verwenden
1
int ichar;
2
public int iCHAR
3
{get{return ichar;}
4
set{ichar = value; Funktion();}
5
}
Ich habe bereits eine Funktion geschrieben, aber das hat nicht 
funktioniert.
1
void stringChanged()
2
        {
3
            ichars = new int[schars.Length];
4
            cchars = new char[schars.Length][];
5
            int i = 0;
6
            foreach (string el in schars)
7
            {
8
                cchars[i] = el.ToCharArray();
9
                ichars[i] = Convert.ToInt32(cchars[i][0]) + Convert.ToInt32(cchars[i][1]);
10
                i++;
11
            }
12
        }
Die anderen beiden Funktionen sind genauso aufgebaut.

von Fuzzi59 (Gast)


Lesenswert?

Hab das noch mal geändert( hatte andere Variablennamen genutzt), aber 
StackOverflow ist eingetreten. Wahrscheinlich weil die Funktionen sich 
die ganze Zeit gegenseitig aufrufen.

von Fuzzi59 (Gast)


Lesenswert?

Ich hab es schon gelöst. Ich habe einfach eine Funktion geschrieben mit 
der ich die Eigenschaft (eng.:Property) änder und damit auch die anderen 
anpasse.

von Flughafen (Gast)


Lesenswert?

Fuzzi59 schrieb:
> Ich hab es schon gelöst. Ich habe einfach eine Funktion geschrieben mit
> der ich die Eigenschaft (eng.:Property) änder und damit auch die anderen
> anpasse.

Das ist gut. Kanst du die Funktion hier mal hinschreiben?

von Fuzzi59 (Gast)


Lesenswert?

1
        public void stringChange(string value)
2
        {
3
            schars = value;
4
            cchars = schars.ToCharArray();
5
            ichars = new int[cchars.Length];
6
            int i = 0;
7
            foreach(char el in cchars)
8
            { ichars[i] = Convert.ToInt32(el);
9
            i++;
10
            }
11
        }
Das ist aber speziell für meine Klasse, also müsste man Variablennamen 
etc. noch anpassen.

von nicht"Gast" (Gast)


Lesenswert?

Flughafen schrieb:
> nicht"Gast" schrieb:
>> Groß und kleinschreibung ist mit absicht Beliebig
>
> lies dir mal den Text über der Eingabe durch. Da steht:
>
> Wichtige Regeln - erst lesen, dann posten!
>
>     Groß- und Kleinschreibung verwenden.
>     Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang.
>
> Groß- und Kleinschreibung sollte nicht nur verwendet, sondern richtig
> verwendet werden.

Weiß ich doch :). Nur irgend wie hab ich beim Korrektur lesen 
festgestellt, dass ich einiges durcheinander gehauen habe und das PS aus 
einer Laune heraus erstellt.

zurück zum Thema.

Warum meinst du eigentlich den Wert immer drei mal vorrätig halten zu 
müssen?


Grüße,

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.