C# Hogyan kéne megoldani ezt?
Készítettem egy programot, ami pár adat megadásával kiszámít egy éréket, majd kiírja egy labelbe, ezt most nevezzük eredmény label-nek. (Ez az érték nagyon sok féle lehet, attól függ mit adsz meg neki)
Szóval megszeretném azt csinálni, hogy ha lenyomok egy gombot, nevezzük ezt most összesítés gombnak, akkor azt az értéket amit kiszámított az eredmény label-be, valahogyan eltárolja, és ha új adatokat adok meg a programnak, és egy új éréket kapok az eredmény label-ben, akkor az hozzá adja, a legutóbb kiszámított, majd eltárolt érékhez, és persze ezt írja is ki. Ha pedig újra új adatokat adok meg a programnak, és újra új érték lesz az eredmény label-ben, akkor az összesítés gomb lenyomásával szint úgy hozzáadja az előző kettő értékez, majd szintén kiírja, és ez így folytatódjon.
Igazából az a bajom,hogy ha felveszem egy váltózóba az eredmény label értékét, és új adatokat adok meg a programnak, és ugye megváltozik az eredmény label értéke, akkor a változó értéke is megváltozik, és így nem tudom hozzá adni az előzőhöz.
Hogyan kéne ezt megcsinálni? Kérem segítsetek!
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
class Program
{
public class CalculationHistory : IEnumerable<CalculationResult>
{
private List<CalculationResult> history = new List<CalculationResult>();
public void Add(CalculationResult result) => history.Add(result);
public IEnumerator<CalculationResult> GetEnumerator() => this.history.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
public class CalculationResult
{
public int A { get; }
public int B { get; }
public int C { get; }
public int D { get; }
public CalculationResult(int a, int b, int c, int d)
{
A = a; B = b; C = c; D = d;
}
}
static void Main()
{
var calculationHistory = new CalculationHistory();
var calculationResult = new CalculationResult(2, 7, -1, 0);
calculationHistory.Add(calculationResult);
var lastCalculation = calculationHistory.Last();
var newCalculation = new CalculationResult
(
a: lastCalculation.A + 7,
b: lastCalculation.B - 2,
c: lastCalculation.C + 5,
d: lastCalculation.D
);
}
}
„Mert ha szimplán felveszek egy változót a 4db eredmény label-re, akkor amint a programom új 4db eredményt számol ki, akkor azonnal megváltozna az eredmény label-ek tartalma, vagyis, az eredmény labelekre felvett változók is.”
Én az ilyen és hasonló mondataidat képtelen vagyok értelmezni. Miért ne vehetnél fel akármiféle változót, tömböt, listát, struktúrát, vagy bármi hasznosat, függetlenül a nyomorult labelektől? Aztán azt olvasol bele, amit jónak látsz, és az is rád van bízva, hogy másodpercenként felülírod más és más adattal, vagy a program bezárásáig úgy marad, mint a lapos kő. Egyszerűen nem értem, mivel küzdesz. Mintha sejtelmed sem volna arról, hogy a felület mögé is lehet programot írni, talán a formot is úgy kattintgattad össze valami RAD-szerkesztőben. Tényleg igaza lesz a kollégának, a lenézett konzolos programok elmellőzésével a lényeg marad rejtve előtted.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!