Jump to content

Scope modifiers: Difference between revisions

C# made table clearer
m (C# minor edit)
(C# made table clearer)
Line 300:
protected internal //visible to anything inside the same assembly and also to derived classes outside the assembly.
private //visible only to the current class.
//C# 7.2 adds:
private protected //visible to current class and to derived classes inside the same assembly.
 
//Modifier | Class | Assembly subclass | Subclass other class || subclass | other Worldclass
//Modifier | class | in same assembly | in same assembly || outside assembly | outside assembly
//-------------------------------------------------------------------------------------------------------
//public | Y | Y | Y | Y
//protectedpublic internal | YYes | Yes | Y Yes || Y Yes | N Yes
//protected internal | Yes | | Y Yes | N Yes || Y Yes | N No
//internalprotected | Yes | Y Yes | Y No || N Yes | N No
//privateinternal | Yes | Y Yes | N Yes || N No | N No
//publicprivate | Yes | Y No | Y No || Y No | Y No
// C# 7.2:
//private protected | YYes | Yes | intersection No || No | NNo</lang>
If no modifier is specified, it defaults to the most restrictive one.<br/>
In case of top-level classes/structs/interfaces/enums this means internal, otherwise it means private.
196

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.