- Visibility Modifiers
 
These modifiers indicate which other code items can view an item.
Modifier 
 |    
Applies To 
 |    
Description 
 |   
public 
 |    
Any types or members 
 |    
The item   is visible to any other code. 
 |   
protected 
 |    
Any member of a type ,aslo any nested type 
 |    
The item   is visible only to any derived type. 
 |   
internal 
 |    
Any member of a type ,aslo any nested type 
 |    
The item   is visible only within its containing assembly. 
 |   
private 
 |    
Any types or members 
 |    
The item   is visible only inside the type to 
which it   belongs. 
 |   
protected internal 
 |    
Any member of a type ,aslo any nested type 
 |    
The item   is visible to any code within its containing assembly and aslo to any code   inside a derived type. 
 |   
Note that type definitions can be public or private, depending on whether you want the type to be visible outside its containing assembly. 
public class mClass{// etc.}
- You cannot define types as protected, internal, or protected internal, as these visibility levels would be meaningless for a type contained in a namespace. Hence these visibilities can only be applied to members.
 - However, you can define nested types (that is, types contained within other types) with these visibilities, since in this case the type also has the status of a member. Hence the following code is correct:
 
public class OutClass{protected class InClass{// etc.}// etc.
}
- If you have a nested type, the inner type is always able to see all members of the outer type.
 - Hence with the above code, any code inside InClass always has access to all members of OutClass, even where those members are private.
 
- Other Modifiers
 
These modifiers can be applied to members of types, and have various uses. A few of these modifiers also make sense when applied to types.
Modifier 
 |    
Applies To 
 |    
Description 
 |   
new 
 |    
Function Members 
 |    
The member   hides an inherited member with the same signature. 
 |   
static 
 |    
All members 
 |    
The member   does not operate on a specific instance of the class. 
 |   
virtual 
 |    
Classes and function members only 
 |    
The member   can be overridden by derived class. 
 |   
abstract 
 |    
Function members only 
 |    
A virtual   member that defines the signature of the member, but doesn’t provide an   implementation. 
 |   
override 
 |    
Function members only 
 |    
The member   overrides an inherited virtual or 
abstract   member. 
 |   
sealed 
 |    
Classes 
 |    
The member   overrides an inherited virtual member, but cannot be overridden by any   classes that inherit from this class. Must be used in conjunction with   override. 
 |   


No comments:
Post a Comment