16 Partition I
generics : The feature that allows types and methods to be defined such that they are parameterized with one or
more generic parameters.
library: A repository for a set of types, which are grouped into one or more assemblies. A library can also
contain modifications to types defined in other libraries. For example, a library can include additional methods,
interfaces, and exceptions for types defined in other libraries.
managed code: Code that contains enough information to allow the CLI to provide a set of core services. For
example, given an address for a method inside the code, the CLI must be able to locate the metadata describing
that method. It must also be able to walk the stack, handle exceptions, and store and retrieve security
information.
managed data: Data that is allocated and released automatically by the CLI, through a process called garbage
collection.
manifest: That part of an assembly that specifies the following information about that assembly: its version,
name, culture, and security requirements; which other files, if any, belong to that assembly, along with a
cryptographic hash of each file; which of the types defined in other files of that assembly are to be exported
from that assembly; and, optionally, a digital signature for the manifest itself, and the public key used to
compute it.
member: Any of the fields, array elements, methods, properties, and events of a type.
metadata: Data that describes and references the types defined by the CTS. Metadata is stored in a way that is
independent of any particular programming language. Thus, metadata provides a common interchange
mechanism for use between tools that manipulate programs (such as compilers and debuggers) as well as
between these tools and the VES.
method: A member that describes an operation that can be performed on values of an exact type.
method, generic: A method (be it static, instance, or virtual), defined within a type, whose signature includes
one or more generic parameters, not present in the type definition itself. The enclosing type itself might, or
might not, be generic. For example, within the generic type List<T>, the generic method S ConvertTo<S>() is
generic.
method, non-generic: A method that is not generic.
module: A single file containing content that can be executed by the VES.
object: An instance of a reference type. An object has more to it than a value. An object is self-typing; its type
is explicitly stored in its representation. It has an identity that distinguishes it from all other objects, and it has
slots that store other entities (which can be either objects or values). While the contents of its slots can be
changed, the identity of an object never changes.
parameter: The name used in the header and body of a method to refer to an argument value supplied at the
point of call.
profile: A set of libraries, grouped together to form a consistent whole that provides a fixed level of
functionality.
property: A member that defines a named value and the methods that access that value. A property definition
defines the accessing contracts on that value. Hence, the property definition specifies which accessing methods
exist and their respective method contracts.
signature: The part of a contract that can be checked and automatically enforced. Signatures are formed by
adding constraints to types and other signatures. A constraint is a limitation on the use of or allowed operations
on a value or location.
type, generic: A type whose definition is parameterized by one or more other types; for example, List<T>,
where T is a generic parameter. The CLI supports the creation and use of instances of generic types. For
example, List<int32> or List<string>.
type, reference: A type such that an instance of it contains a reference to its data.
type, value: A type such that an instance of it directly contains all its data.