Diskuze: Volani metody z jine tridy
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
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.


Keďže nemáš pri metóde Zkouska uvedený prístupový modifikátor, kompilátor vždy predpokladá najreštriktívnejší možný - v tvojom prípade private. Dopíš tam explicitne public a malo by to ísť.
U té metody si nespecifikoval jestli chceš, aby byla privátní nebo veřejná. Tím, že si tam nic nenapsal, program automaticky bere, že je privátní a tudíž dostupná jen v rámci té jedné třídy, proto jí nemůžeš zavolat z venčí.
Myslím, že bys měl mít dříve
InitializeComponents();
a pak až volat tu tvojí třídu
Důvod je ten, že zbytečně pak vytváříš tu třídu MainWindow znovu v té třídě Class1, přístup na ten atribut můžeš vyřešit předáním parametru this v konstruktoru té Class1.
public partial class MainWindow: Window {
MtApiClient apiClient = new MtApiClient();
Class1 cles;
public MainWindow() {
InitializeComponents();
this.cles = Class1(this);
}
}
A v Class1
class Class1 {
private MainWindow mainWindow;
public Class1(MainWindow mainWindow) {
this.mainWindow = mainWindow;
}
public void zkouska() {
mainWindow.textBox1.text = "Bla";
}
}
Asi tak nějak by to mělo být a nejspíše to nebude úplně nejlepší řešení.
Nevím jestli je nejlepší, ale je funkční ...Používaní this je pro me jeste vyssi divcí.
BTW: pises ze zbytecne vytvarim tridu. Ale dle toho ze to pada to tak delat ani nemuzu ne?
Znamena to že nemuzu Class1 vytvorit objekt v Class2
a v Class2 vytvorit objekt na Class1 ?
Můžeš, ale pak to nebudeš mít ty samé objekty, tak to nefunguje. Proto musíš předat objekt té jedné třídy
this
do objektu té druhé, abys ho mohl z ní používat.
Ale můžeš, jen ji musíš mít taky public
public class Clas1{
}
Zobrazeno 11 zpráv z 11.