Autor Beitrag
kiar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Sa 14.01.06 19:51 
moin,

wie kann ich verhindern, das ein Randomwert nochmal gelesen wird, dies führt ja zu falschen ergebnissen.

Hintergrund ist, ich ermittele die WochenKilometer um diese auf den Kilometerstand dazu zu addieren.
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:
public class Retour : Fahrt
    {
       
        public Retour() : base()
        {
            
        }
        public  int W_Kilometer
        {
            get
            {
                Random r = new Random();
                int x = r.Next(330550);
                int a = (x % 5);
                return (x - a);
            }
        }
        
        public override int S_Kilometer
        {
            get
            {
                return base.S_Kilometerr + W_Kilometer;
            }
            set
            {
               base.S_Kilometer = value;
            }
        }

    }


Wenn ich jetzt serialisiere wird ja die Klasse nochmal gelesen, was jedoch den W_Kilometerwert ändert. Es stört mich nur soweit, das W_Kilometer neu ermittelt wird, der Wert als solcher, ist mir egal.

Was kann ich machen, das er diesen wert beim serialisieren nicht neu ermittelt?

raik
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 14.01.06 20:05 
Irgendwie verstehe ich noch nicht ganz, was Du genau möchtest. Wenn ich das richtig sehe, wäre es für Dich am Besten, wenn W_Kilometer gar nicht mit serialisiert würde, da er eh immer per Zufall erzeugt wird? (Würde in meinen Augen Sinn machen, den nicht mitzuspeichern)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
kiar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Sa 14.01.06 20:19 
Moin Christian,

für den Zweck ist es richtig, ist nicht nötig.

ich schreibe an einem Abrechnungsprogramm für Reisekosten. Diese könnten, in Zukunft, in zwei Teilen ausgeführt werden.

Einmal die Abrechnung zur Baustelle und zurück, und in der Zukunft werden wir wohl auch noch innerhalb der Woche die Kilometer von der Unterkunft zur Baustelle mit ausführen. Da das holländisch Finanzamt, maximal 110 Kilometer/ Tag bezahlt, und immer 110 kilometer zu auffällig sind habe ich einen flexiblen Wochenbetrag genommen.:-)

Es kann also sein, das die Wochenkilometer schon gespeichert werden müssen.
ich sollte vllt die Wochenkilometer nochmal separat speichern, und wenn dieses erfüllt ist nicht nochmal den ermitteln
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if (WochenKilometer<= 0)
{
  return base.S_Kilometer + W_Kilometer;
}
else
{
return base.S_Kilometer;
}


raik
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 14.01.06 20:23 
Oder Du speicherst bei W_Kilometer den beim ersten Aufruf erzeugten Zufallswert und gibst diesen bei jedem erneuten Aufruf zurück.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
kiar Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Sa 14.01.06 20:28 
das ist natürlich noch eleganter, werde dies mal probieren..

danke raik