Diskuze: Problém s kolekciou List
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 12 zpráv z 12.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


to co děláš je podle mě blbost. Nevím jak je na tom c#, ale VB.NET umí moduly, které jsou dostupné po celém projektu.
Nicméně si myslím, že tvůj problém jde řešit i jinak.
Můžeš si udělat propertu na ten list, uložit si někde jeho referenci a pracovat s ním takhle - ale tohle určitě není nejideálnější řešení
Vytvořil bych si třídu (Model) která by visela nad oběma Formy, kde by jsi měl data. Předpokládám stejně, že FOrm 2 doplňuje data (list) z Form 1. Tudíž si udělej třídu, která bude dostupná například z Program.cs kde budeš mít statickou instanci této třídy a budeš mít přístup k datům z obou formů. Jak implementuješ přidávání, odebírání ,... dat už je na tobě.
Jde to řešit i bez statiky, pokud bys list2 vytvořil ve formu 1 a pak ho
předal do druhého formuláře při jeho vytvoření, budeš k němu moci
přistupovat z obou formulářů, a zároveň díky tomu že se kolekce
implicitně předávají vždy referencí bude v obou formulářích
stejný.
Ve formu2 upravíš konstruktor:
public partial class Form2 : Form
{
private List<string> list;
public Form2(List<string> list)
{
InitializeComponent();
this.list = list;
}
}
A form dva tím pádem budeš vytvářet následovně
public partial class Form1 : Form
{
private List<string> list;
public Form1()
{
InitializeComponent();
list = new List<string>();
}
private void button2_Click(object sender, EventArgs e)
{
Form2 form = new Form2(list);
form.Show();
}
}
Skúšal som to tak, ako si napísal, ale to nie je riešenie, potrebujem ten List otvoriť ako keby som mal public premennú. Ale Public List mi nejde, takže neviem.
Zatiaľ som nikde nenašiel, ako vytvoriť modul na celý projekt. Takže asi
to nebude riešenie 
private List<T> list;
private List<T> List
{
get { return list; }
set { list = value; }
}
Psal jsi to takhle? S tím,že někde v metodě Load nebo v konstruktoru musíš nasat ještě
list = new List<T>;


Fuj!
Tohle se má dělat v aplikaci - v Main. Main má fungovat jako jediný zaujatý objekt - takže z main zavoláš všechny objekty aplikace. Z Formu1 vytáhneš list a dáš jej do Formu2 to ano. Ale oba furmuláře musí být nezaujaté... Aplikace by měla být pouze soustavou volání a parametriziváním volání návratem z volání. Ale žádná logika atd. Objekty pro tuto aplikaci pak budou nezaujaté! A maximálně obecné.
Zobrazeno 12 zpráv z 12.