What are delegates? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
What is the purpose of delegates?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
Defining delegates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
Implementing delegates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
xiv
Contents
What are events? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
Implementing an event source class . . . . . . . . . . . . . . . . . . . . . . . . . .254
Implementing an event receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
Hooking it all together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
Quick reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
Chapter 15 The .NET Framework class library
263
What is the .NET Framework? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
The Common Language Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
The Microsoft Intermediate Language . . . . . . . . . . . . . . . . . . . . . . . .264
The Common Type System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
The Common Language Specification . . . . . . . . . . . . . . . . . . . . . . . .265
The .NET Framework class library . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
The .NET Framework namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
Using namespaces in C++ applications . . . . . . . . . . . . . . . . . . . . . . .270
The System namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
The Collections namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
The Collections interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273
The Diagnostics namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
The IO namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
The Windows namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
The Net namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
The ServiceModel namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
The Xml namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
The Data namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
The Web namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
Quick reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278