Specifikátor přístupu třídy a vliv na členy – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Specifikátor přístupu třídy a vliv na členy – .NET – Fórum – Programujte.comSpecifikátor přístupu třídy a vliv na členy – .NET – Fórum – Programujte.com

 

Temp
~ Anonymní uživatel
8 příspěvků
30. 5. 2013   #1
-
0
-

Jaký vliv má specifikátor přístupu třídy na její členy?

Když bude třída internal znamená to, že všichni její členové budou také internal, pokud neuvedu něco jiného?

Díky.

Nahlásit jako SPAM
IP: 89.31.10.–
ingiraxo+15
Grafoman
30. 5. 2013   #2
-
0
-

tak za 1) to neni žádnej specifikátor ale modifikátor

2) internal je pro vnitřní použití, je to výchozí nastavení a používá se hlavně u DLL, kde nechceš umožnit přístup z venku

Nahlásit jako SPAM
IP: 93.90.162.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Temp
~ Anonymní uživatel
8 příspěvků
30. 5. 2013   #3
-
0
-

Tak to zkusím jinak:

Když u třídy, nebo člena třídy není uveden modifikátor přístupu, tak jaký tam je?

Nahlásit jako SPAM
IP: 89.31.10.–
Temp
~ Anonymní uživatel
8 příspěvků
30. 5. 2013   #4
-
0
-

Našel jsem, co jsem hledal, takže si odpovím sám:

| Default   | Permitted declared accessibilities
    ------------------------------------------------------------------
    namespace            | public    | none (always implicitly public)

    enum                 | public    | none (always implicitly public)

    interface            | public    | none

    class                | private   | All¹

    struct               | private   | public, internal, private²

    delegate             | private   | All¹

    constructor          | protected | All¹

    interface member     | public    | none (always implicitly public)

    method               | private   | All¹

    field                | private   | All¹

    user-defined operator| none      | public (must be declared public)

    ¹ All === public, protected, internal, private, protected internal

    ² structs cannot inherit from structs or classes (although they can, interfaces), hence protected is not a valid modifier

Nahlásit jako SPAM
IP: 89.31.10.–
Temp
~ Anonymní uživatel
8 příspěvků
30. 5. 2013   #5
-
0
-

Stále ale nemám jasno v tom, jestli když změním class z private na public, změní se i dafault modifikátory členů.

Jaký se vlastně smysl modifikátoru p. u třídy, když členové mají modifikátory vlastní?

Nahlásit jako SPAM
IP: 89.31.10.–
ingiraxo+15
Grafoman
30. 5. 2013   #6
-
0
-

jen pozor, že třída nemá modifikátor private, ale internal (ve výsledku je to prakticky stejný)

a nezmění, všechny modifikátory musíš měnit ručně, nic se ti nenastaví automaticky v závisloti na nějakým nadřazeným  modifikátoru... čili když změníš třídu na public, tak členy budou stále private

a doporučuju psát všude modifikátory.. i když to někde bere jako výchozí private, tak tomu ještě ručně dopsat private, je to pak na první pohled jasný

a smysl je v tom, že privátní členy třídy nejsou viditelný z venku nebo u dědičnosti, jsou použitelný pouze pro potřeby třídy

Nahlásit jako SPAM
IP: 93.90.162.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
AttilaA0
Newbie
30. 5. 2013   #7
-
0
-

Děkuji, už v tom mám jasněji. Mohl by si ještě uvést příklad využití modifikátoru u třídy?

Nahlásit jako SPAM
IP: 178.72.192.–
ingiraxo+15
Grafoman
30. 5. 2013   #8
-
0
-

těch modifikátorů je hodně a né všechny se používají u třídy, u inst. proměnných nebo u funkcí, takže tohle by bylo delší téma, ale stručně...

public - třída půjde vidět i mimo projekt (třeba z knihovny - dll)
internal - třída bude vidět pouze v projektu
static - od třídy nepůjde vytvořit instance a ani nepůjde dědit
abstract - opět od třídy nepůjde vytvořit instance, ale půjde dědit (používá se pouze u dědičnosti a když je to potřeba)
sealed - třída nejde dědit
partial - třída bude částečná (lze vytvořit víc tříd se stejným jménem - při kompilaci se spojí v jednu)

samozřejmě nekterý modifikátory jdou spojovat, třeba jako public static class

- u inst. proměnných máš zas trochu jiný modifikátory:
public, protected, private, static, readonly, const

- u funkcí opět trochu jiný:
public, protected, private, abstract, virtual, sealed, static, override

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

C# Vliv rychlost — založil Crooker

Hledáme nové členy našeho týmu — založil Pavla Brodacká

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý