access modifier

A keyword, such as  private protected internal, or  public, that restricts access to a type or type member. For more information, see  Access Modifiers.

accessible member

A member that can be accessed by a given type. An accessible member for one type is not necessarily accessible to another type. For more information, see  Access Modifiers and  Friend Assemblies.


A method that sets or retrieves the value of a private data member value that is associated with a property. Read-write properties have get and set accessors. Properties that are read-only have only a get accessor. For more information, see  Properties.

anonymous method

An anonymous method is a code block that is passed as a parameter to a  delegate. For more information, see Anonymous Methods.

base class

 class that is inherited by another 'derived' class. For more information, see  Inheritance.

call stack

The series of method calls leading from the beginning of the program to the statement currently being executed at run time.


A data type that describes an object. Classes contain both data, and the methods for acting on the data. For more information, see  Classes.


A special method on a class or struct that initializes the objects of that type. For more information, see Constructors.


A delegate is a type that references a method. Once a delegate is assigned a method, it behaves exactly like that method. For more information, see  Delegates.

derived class

 class that uses inheritance to gain, augment, or modify the behavior and data of another 'base' class. For more information, see  Inheritance.


A special method on a  class or  struct that prepares the instance for destruction by the system. For more information, see  Destructors.


A member of a  class or  struct that sends notifications of a change. For more information, see  Events.


A data member of a  class or  struct that is accessed directly.


Generics allow you to define a  class and or method that are defined with a type parameter. When client code instantiates the type, it specifies a particular type as an argument. For more information, see  Generics.


Integrated Development Environment. The application that provides the unified user interface for the various development tools including the compiler, debugger, code editor, and designers.

immutable type

A type whose instance data, fields and properties, does not change after the instance is created. Most value types are immutable.

inaccessible member

A member that cannot be accessed by a given type. An inaccessible member for one type is not necessarily inaccessible to another type. For more information, see  Access Modifiers.


C# supports inheritance, so a  class that derives from another class, known as the base class, inherits the same methods and properties. Inheritance involves base classes and derived classes. For more information, see Inheritance.


A type that contains only the signatures of public methods, events, and delegates. An object that inherits the interface must implement all of the methods and events defined in the interface. Classes or structs may inherit any number of interfaces. For more information, see  Interfaces


An iterator is a method that enables consumers of a  class that contains a collection or array to use  foreach, in (C# Reference) to iterate through that collection or array.


A field, property, method, or event declared on a  class or  struct.


A named code block that provides behavior for a  class or  struct.

mutable type

A type whose instance data, fields and properties, can be changed after the instance is created. Most  Reference Types are mutable.

nested type

A type declared within the declaration of another type.


An instance of a  class. An object exists in memory, and has data and methods that act on the data. For more information, see  Objects, Classes, and Structs.


A data member accessed by means of an accessor. For more information, see  Properties.


Reusing previously entered code. The Visual C# Express Code Editor can intelligently reformat code to, for example, turn a block of highlight code into a method. For more information, see  Refactoring.

reference type

A data type. A variable declared as a reference type points to a location where data is stored. For more information, see  Reference Types.


A class or method declared as static exists without first being instantiated using the keyword new. Main() is a static method. For more information, see  Static Classes and Static Class Members.


A compound data type that is typically used to contain a few variables that have some logical relationship. Structs can also contain methods and events. Structs do not support inheritance but they do support interfaces. A struct is a  value type, while a  class is a  reference type. For more information, see  Structs.

value type

A value type is a data type that is allocated on the stack, as opposed to a reference type which is allocated on the heap. The  built-In types, including the numeric types as well as the struct type and the nullable type, are all value types. The  class type and  string type are  reference types. For more information, see  Value Types (C# Reference).