c# Werte automatisch aufeinander anpassen

Gast #3863160
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.
Gast #3863168
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
Gast #3863173
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?
Gast #3863180
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.
Gast #3863187
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".
Gast #3863192
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.
Gast #3863194
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.
Gast #3863209
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.
Gast #3863213
Hab das noch mal geändert( hatte andere Variablennamen genutzt), aber 
StackOverflow ist eingetreten. Wahrscheinlich weil die Funktionen sich 
die ganze Zeit gegenseitig aufrufen.
Gast #3863222
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.
Gast #3863224
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?
Gast #3863235
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.
Gast #3863280
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,

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.