Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
renko
Člen
Avatar
renko:2.4.2014 13:48

Ahoj všem,

předně bych chtěl jenom napsat, že jsem v C# začátečník. Tak mne prosím nekamenujte. Do této doby jsem dělal s VB, takže nějaké znalosti mám. Nyní k mému dotazu. Snažím se vytvořit jednoduchou winform aplikaci. Chtěl bych tam mít třídy Settings, Users a třeba i Employee. Třídu Settings bych si dal jako singleton. Users a Employee potřebuji měnit, takže bych dal jako normální třídy. Nyní mi tedy vzniká několik otázek, které jsem zatím nikde nenašel (hledal jsem, ale asi jsem se v tom už tak trochu víc zamotal).

  1. mohu udělat další třídu např. Session a ta by mi držela všechny ostatní třídy v celém programu (tzn. v jakémkoliv formu)?
  2. pokud udělám třídu Session, pak jí inicializuji v hlavní formu (MDIForm) a tuto třídu budu předávat dál do ostatních formů pomocí hlavního konstruktoru - je to tak správně?
  3. Když bych potřeboval ve třídě Employee změnit nějakou vlastnost, jak to udělám, aby se to promítlo ve třídě Session - Employee.

Já vím, že se vám tyto otázky budou zdát zbytečné, ale tohle jsem prostě ve VB nemusel řešit, takže se mi to tak trošku plete jak co používat v tom C#. Na netu jsem několik článků o tom i našel, ale zatím z toho moc chytrej nejsem, tak zkouším tohle fóru, zda by mě někdo tzv. "nakopnul" jakým správným směrem jít.

Děkuji moc.

R.

 
Odpovědět
2.4.2014 13:48
Avatar
Odpovídá na renko
Luboš Běhounek Satik:3.4.2014 12:48

Settings by teoreticky mohla být i statická třída, záleží na tom, co přesně od toho očekáváš.

  1. ano
  2. ano
  3. pokud ten Employee, co ho měníš, ukazuje na to samé místo, jako ten Employee z Session, tak to je automatické, protože to jsou jen reference na toho samého Employee - viz příklad:
List<Employee> employeesList = new List<Employee>(); // vytvorei seznam zamestnancu
Employee e = new Employee("Karel"); // vytvori noveho zamestnance
zamestnanci.Add(e); // prida zamestnance do seznamu

Když teď něco uděláš s tím zaměstnancem e, tak se to promítne i na tom zaměstnanci v seznamu, protože jsou to obojí reference odkazující na stejného zaměstnance.

Nahoru Odpovědět
3.4.2014 12:48
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.