safe handles, 593–594
sample C# programs
Binder class, 377–378
complex iterations, 290
conversion operator overloading, 640–641
Dispose method, 577
dual iteration, 287–288
dynamic binding, 374
enumerators (basic), 273–275
enumerators (static collections), 275–276
enumerators (versioned collections), 276
exception handling, 326
four-dimensional array sample code, 193
generic enumerators (versioned collections), 281
GetGenericArguments method, 386
GetGenericTypeDefinition method, 385
GetType method, 385
Hello World application, 30–31, 360
indexers, 209
inheritance, 88–89
iterator examples (complex iterations), 290
iterator examples (dual iteration), 287–288
iterator examples (overview), 287
iterator examples (reverse iteration), 288
iterator examples (temporary collections), 289
jagged arrays, 194
links to code samples for this book, xxiv
multidimensional arrays, 193
reflection, 372
reverse iteration, 288
sheet collections, 239
temporary collections, 289
tracing, 480, 485–486, 489–491
type creation, 379–380
type parameters, 239
sample MSIL programs, 403–405
scoped exceptions, 432
Script Explorer window, 465
sealed
classes, 107
events, 107
indexers, 107
members, 108
methods, 107
overview, 107
properties, 107
static members, 107
security, 388
selection statements, 38–41
semicolon punctuators, 8
serialization, 263
serializing application exceptions, 346
Server GC
configuring GC flavor, 561–562
overview, 559, 560–561
SetLastError, 615–616
sheet collections, 239
sheet generic type, 241
short-form instruction syntax, 414–415
single-dimensional arrays
overview, 187
syntax, 189
single-line comments (//), 10
single-line documentation comments (///), 10–12
singletons, 67
Snippet elements, 167
snippets. See code snippets
Solution Explorer
overview, 138–139
project types, 140–141
special-purpose project templates, 140
Web project types, 140
Son of Strike (SOS)
commands, 522–523
overview, 504, 519–520
thread commands, 541
walkthrough part I, 520–523
walkthrough part II, 523–524
SortedList collection
members, 228–230
overview, 228
SOS. See Son of Strike (SOS)
source code formatting, 159
SourceFilter constructors, 484
SourceLevels, 479
SourceSwitch
constructors, 480
overview, 479
properties, 480
specialized collections
list of, 232–233
overview, 232
Stack collection
members, 231–232
overview, 231
stack trace commands, 514–515
stackalloc command, 610–611
StackInt class, 235
stacks, evaluation, 405–406
Start Page, 136–137
statements
fixed, 609–610
iterative, 41–44
selection, 38–41
Yield, 284–285
static classes, 50
static collections, 275–276
static constructors, 66
static fields, 52
static members
abstract, 106
closed constructed types, 260
deserialization, 263
generic types, 260
generics internals, 265–266
operator functions, 261–263
overview, 50
sealed, 107
serialization, 263
static classes, 50
static methods, 317
step commands, 518–519
store method, 415–417
streams, 358
String heap, 358
StringBuilder class, 620–621
StringBuilder type, 168
StringCollection collection, 232
StringDictionary collection, 232
struct keyword, 254
structured exception handling
catch statements, 329–330
Exception Information Table, 333
finally statements, 332
nested try blocks, 333–334
overview, 327
propagating exceptions, 330–331
rethrowing exceptions, 330
termination handlers, 332
try statements, 327–328
structures
MSIL programming, 422
overview, 45, 76–77
syntax, 76
subscribers, 320–321
Summation class, 643
summation notation, 642–645
Summation type, 643
Surround With feature, 158
switches, 479
symbol servers
overview, 548
Symsrv symbol server, 548–549
symbol stores, 548
symbols and tokens
blocks, 16
breakpoints, 461
characters, 18
comments, 10
debugging, 547–549
escape characters, 19–20
generic types, 17
keywords, 25–29
line terminators, 9
list of, 8
metadata, 357–358
nullable types, 18
numeric suffixes, 18–19
operators, 21–24
overview, 7
pointers, 606–607
preprocessor directives, 13–16
primitives, 29
punctuators, 8–9
tabs, 8
TRACE symbol, 476
Unicode characters, 18
verbatim characters, 20–21
white space, 8
symmetry, 92
Symsrv symbol server, 548–549
syntax
anonymous methods, 314
arrays, 189–191, 428
assembly directives, 407
attributes, 391
BeginInvoke method, 308
Binder class, 375
calling methods, 425
CDATA, 168
class declarations, 46
class member access, 48
constants, 52
constructors, 63, 109
CreateDelegate method, 381
delegates, 298
destructors, 68
DllImportAttribute, 612
dynamic binding, 373, 374
DynamicInvoke method, 382
EndInvoke method, 310
enumerations, 78
events, 319
field declarations, 52
Finalize method, 562
fixed-size buffers, 625
generic methods, 244
generic types, 242
GetGenericArguments method, 386
GetGenericTypeDefinition method, 385
GetInvocationList method, 303
indexers, 209
inheritance, 98
instance members, 50
instructions, MSIL, 414–415
interfaces, 112
is operator, 129
jagged arrays, 194
local variables, 55
methods, 56
Microsoft Build Engine (MSBuild), 180
multidimensional arrays, 192
nested types, 73
as operator, 130
PEVerify, 359
pointers, 605
properties, 70
single-dimensional arrays, 189
stackalloc command, 611
structures, 76
UnhandledExceptionEventHandler, 350
VirtualAlloc, 530
WaitForMultipleObjects, 541
system requirements, xxii–xxiii
Sys tem.Array. See also arrays
Array.AsReadOnly method, 199
Array.Clone method, 200
Array.CreateInstance method, 201–202
Array.FindAll method, 202–203
Array.Resize method, 203
Array.SyncRoot property, 204
comparable elements, 205–207
ICloneable interface, 207
ICollection interface, 207
IEnumerable interface, 207
IList interface, 208
indexers, 208–210
interfaces, 189
members, 196–199
methods, 199–203
overview, 189, 196
properties, 203–204
System.Enum methods, list of, 79
System.Exception
application exceptions, 338–340
COM Callable Wrappers (CCWs), 345
COM interoperability exceptions, 341–345
constructors, 336
exception translation, 340
functions, 336
methods, 336
overview, 335
properties, 337
System.MulticastDelegate class
combining delegates, 302
overview, 301
removing delegates, 302
System.Object
members, 91
methods, 91
Object.Equals method, 92
Object.GetHashCode method, 93
Object.GetType method, 93
Object.MemberwiseClone method, 94–95
Object.ReferenceEquals method, 95
Object.ToString method, 94
overview, 90