Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - 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í.
C# .NET + discount 30
Avatar
Petr Valigura
Tvůrce
Avatar
Petr Valigura:17.6.2016 22:21

Ahoj, mám otázku, kterou když jsem googlil, tak výsledkem byly jen další otázky... Takže radši píšu tady :)

Když se zeptám tedy úplně hloupě - kdy mám u třídy použít public? Ideálně, kdyby jste mohli napsat nějaký příklad... přeci jen, k třídě bez public můžu přistupovat ze stejného jmenného prostoru, takže s public můžu přistupovat i z jiných jmenných prostorů? To se mi zdá jako hloupost.

Budu rád i za nějaký pochopitelný odkaz či přesměrování :) Díky.

Odpovědět
17.6.2016 22:21
Občas je to tady dobrá klauniáda...
Avatar
Patrik Valkovič
Člen IT Redactor Gang
Avatar
Odpovídá na Petr Valigura
Patrik Valkovič:17.6.2016 23:02

Public u třídy se vztahuje na sestavení. Ve Visual Studiu si to můžeš představit jako projekt. Představ si, že píšeš knihovnu. Potom vytvoříš nový projekt a řekneš, že chceš používat vytvořenou knihovnu. Tento projekt bude mít přístup pouze k public třídám. Třídy bez modifikátoru neuvidí (výchozí nastavení je myslím internal). https://msdn.microsoft.com/…s173121.aspx

Editováno 17.6.2016 23:03
Nahoru Odpovědět
17.6.2016 23:02
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Petr Valigura
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
Petr Valigura:17.6.2016 23:21

Aha, aha, pomalu to začíná dávat smysl. :) Co myslíš tím sestavení? Jako kompilaci? assembly? nebo něco jiného?

Jinak narazil jsem na to u zdejšího seriálu o WPF, kde v sedmém díle je napsáno

Před třídu nezapomeňte dát modifikátor public.

Tam se to tedy dává, kvůli tomu jak WPF funguje? Ty "okna" nejsou ve stejném assembly (nebo tedy jestli je to překládáno jako sestavení, tak v něm)? Nebo je kvůli něčemu jinému?

Nahoru Odpovědět
17.6.2016 23:21
Občas je to tady dobrá klauniáda...
Avatar
Patrik Valkovič
Člen IT Redactor Gang
Avatar
Odpovídá na Petr Valigura
Patrik Valkovič:17.6.2016 23:28

Sestavení a assembly je to stejné. Je to ten .dll soubor, který se vygeneruje. Když si ve Visual Studio v projektu rozklikneš References, tak máš seznam sestavení (knihoven, assembliesú), která projekt používá. Někde tam mimojiné uvidíš knihovnu na WPF.
Článek jsem jen tak shlédl, ale nemyslím si, že je tam ten modifikátor public nutný. public použiješ pouze tehdy, chceš-li používát třídy z jiného projektu (sestavení/as­sembly).

Pozn.: Výjimka je testing, kde můžeš v meta tagu říct [InternalsVisi­bleTo(...)] - ale to asi neřeš.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
17.6.2016 23:28
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Petr Valigura
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
Petr Valigura:17.6.2016 23:36

Díky, tohle mi jako základní vysvětlení zatím stačí :)
Každopádně, kdyby k tomu měl ještě někdo co říct budu jen rád :)

Nahoru Odpovědět
17.6.2016 23:36
Občas je to tady dobrá klauniáda...
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Petr Valigura
ostrozan:19.6.2016 10:01

nemyslím si, že je tam ten modifikátor public nutný. public použiješ pouze tehdy, chceš-li používát třídy z jiného projektu

Je tu ještě jeden a to podstatnější důvod :
Když budeš chtít použít instanci třídy v jiné třídě téhož projektu (jediná vyjímka je MainWindow) tak pokud nebude "public" vyhodí ti kompilátor chybu.

 
Nahoru Odpovědět
19.6.2016 10:01
Avatar
Petr Valigura
Tvůrce
Avatar
Odpovídá na ostrozan
Petr Valigura:19.6.2016 12:59

Aha :) super, hned je mi to jasnější. Díky

Nahoru Odpovědět
19.6.2016 12:59
Občas je to tady dobrá klauniáda...
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 7 zpráv z 7.