11.2 Reference types

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

11.2 Reference types

A reference type is a class type, an interface type, an array type, or a

delegate type.

Chapter 11 Types

95

reference-type:

class-type

interface-type

array-type

delegate-type

class-type:

type-name

object

string

interface-type:

type-name

array-type:

non-array-type rank-specifiers

non-array-type:

type

rank-specifiers:

rank-specifier

rank-specifiers rank-specifier

rank-specifier:

[ dim-separatorsopt ]

dim-separators:

,

dim-separators ,

delegate-type:

type-name

A reference type value is a reference to an instance of the type, the

latter known as an object. The special

value null is compatible with all reference types and indicates the absence

of an instance.

11.2.1 Class types

A class type defines a data structure that contains data members (constants

and fields), function members

(methods, properties, events, indexers, operators, instance constructors,

destructors, and static constructors),

and nested types. Class types support inheritance, a mechanism whereby

derived classes can extend and

specialize base classes. Instances of class types are created using

object-creation-expressions (§14.5.10.1).

Class types are described in §17.

11.2.2 The object type

The object class type is the ultimate base class of all other types. Every

type in C# directly or indirectly

derives from the object class type.

The keyword object is simply an alias for the predefined class

System.Object.

11.2.3 The string type

The string type is a sealed class type that inherits directly from object.

Instances of the string class

represent Unicode character strings.

Values of the string type can be written as string literals (§9.4.4).

The keyword string is simply an alias for the predefined class

System.String.

C# LANGUAGE SPECIFICATION

96

11.2.4 Interface types

An interface defines a contract. A class or struct that implements an

interface must adhere to its contract. An

interface may inherit from multiple base interfaces, and a class or struct

may implement multiple interfaces.

Interface types are described in §20.

11.2.5 Array types

An array is a data structure that contains zero or more variables which are

accessed through computed

indices. The variables contained in an array, also called the elements of

the array, are all of the same type,

and this type is called the element type of the array.

Array types are described in §19.

11.2.6 Delegate types

A delegate is a data structure that refers to one or more methods, and for

instance methods, it also refers to

their corresponding object instances.

[Note: The closest equivalent of a delegate in C or C++ is a function

pointer, but whereas a function pointer

can only reference static functions, a delegate can reference both static

and instance methods. In the latter

case, the delegate stores not only a reference to the method.s entry point,

but also a reference to the object

instance on which to invoke the method. end note]

Delegate types are described in §22.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航