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.
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
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
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
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
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
Zjistit počet nových příspěvků
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
































© 2003–2026 Programujte.com