Skip to main content This browser is no longer supported. Show
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Access Modifiers (C# Programming Guide)
In this articleAll types and type members have an accessibility level. The accessibility level controls whether they can be used from other code in your assembly or other assemblies. An assembly is a .dll or .exe created by compiling one or more .cs files in a single compilation. Use the following access modifiers to specify the accessibility of a type or member when you declare it:
Summary table
The following examples demonstrate how to specify access modifiers on a type and member:
Not all access modifiers are valid for all types or members in all contexts. In some cases, the accessibility of a type member is constrained by the accessibility of its containing type. Class, record, and struct accessibilityClasses, records, and structs declared directly within a namespace (in other words,
that aren't nested within other classes or structs) can be either Struct members, including nested classes and structs, can be declared Derived classes and derived records can't have greater accessibility than their base types. You can't declare a public class You can enable specific other assemblies to access your internal types by using the Class, record, and struct member accessibilityClass and record members (including nested classes, records and structs) can be declared with any of the six types of access. Struct members can't be declared as Normally, the accessibility of a member isn't greater than the accessibility of the type that contains it. However, a The type of any member field, property, or event must be at least as accessible as the member itself. Similarly, the return type and the parameter types
of any method, indexer, or delegate must be at least as accessible as the member itself. For example, you can't have a User-defined operators must always be declared as Finalizers can't have accessibility modifiers. To set the access level for a
Other typesInterfaces declared directly within a namespace can
be Enumeration members are always Delegates
behave like classes and structs. By default, they have C# language specificationFor more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage. See also
FeedbackSubmit and view feedback for What modifier should you use on a class so a class in the same package can access it but a class in a different package Cannot access it?The private modifier specifies that the member can only be accessed in its own class. The protected modifier specifies that the member can only be accessed within its own package (as with package-private) and, in addition, by a subclass of its class in another package.
What modifier should you use on the members of a class so that they are not accessible to another class in a different package?Private: The private access modifier is specified using the keyword private. The methods or data members declared as private are accessible only within the class in which they are declared. Any other class of the same package will not be able to access these members.
Which access modifier can be used to access a variable outside the class and within the package?Public Access Modifier
It is a keyword. If a class member like variable, method, or data members are prefixed with a public access modifier, then they can be accessed from anywhere inside the program. That is, they can be accessed within the same class as well as from outside the different classes.
Which of the access levels in Java allows access with the same class and within different class but same package?Public: The access level of a public modifier is everywhere. It can be accessed from within the class, outside the class, within the package and outside the package.
|