Avatar
Petr Valigura
Redaktor
Avatar
Petr Valigura:

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. června 22:21
Občas je to tady dobrá klauniáda...
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Petr Valigura
patrik.valkovic:

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. června 23:03
Nahoru Odpovědět  +1 17. června 23:02
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Petr Valigura
Redaktor
Avatar
Odpovídá na patrik.valkovic
Petr Valigura:

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. června 23:21
Občas je to tady dobrá klauniáda...
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Petr Valigura
patrik.valkovic:

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. června 23:28
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Petr Valigura
Redaktor
Avatar
Odpovídá na patrik.valkovic
Petr Valigura:

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. června 23:36
Občas je to tady dobrá klauniáda...
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Petr Valigura
ostrozan:

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  +2 19. června 10:01
Avatar
Petr Valigura
Redaktor
Avatar
Odpovídá na ostrozan
Petr Valigura:

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

Nahoru Odpovědět 19. června 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.