MageUI (Manifest Generation and Editing) tool, 183
main entry points, 35–36
MakeGenericType method, 387
Managed Debugger (MDbg)
commands, 511–512
overview, 503, 506–507
walkthrough, 507–510
managed heap
generations, 534
overview, 530
manifest, 355
Manifest Generation and Editing (MageUI) tool, 183
MarshalAs attribute, 624
marshaling, explicit, 622–624
mathematical and logical operator overloading
C++ vs. C# languages, 628
Decrement (-) operators, 632
implementing, 629–632
Increment (++) operators, 632
LeftShift operators, 633
operator false, 634
operator true, 634
operator|| and operator&&, 636–637
operator== and operator!=, 635
overview, 628–629
paired operators, 635–637
replacement methods, 646
RightShift operators, 633
MDbg. See Managed Debugger (MDbg)
member functions
constructors, 63
destructors, 68
function code, 54–55
function overloading, 62–63
local variables, 55–56
methods, 56
nested types, 73
overview, 54
parameters, 58–61
partial classes, 74–76
properties, 69–72
returns, 57–58
members
abstract, 106
accessibility, 49
ArrayList collection, 215–219
attributes, 49
BitArray collection, 219–220
class members, overview, 48
data members, 51
delegates, 306
function members, 51
Hashtable collection, 222–224
instance members overview, 50
LayoutKind enumeration, 618
modifiers, 49
Queue collection, 226–227
sealed, 108
SortedList collection, 228–230
static members overview, 50
System.Array, 196–199
UnmanagedType enumeration, 623
WeakReference class, 591
MemberTypes enumeration, 370
memory
breakpoints memory commands, 516–518
Constrained Execution Region (CER), 592–594
counters, 538–539
destructors, 538
display memory commands, 515–516
Dispose method. See Dispose method
dump files. See dump files
finalization, 537–538
finalizers. See finalizers
garbage collection overview, 555–559
garbage collector (GC), 530
GC class, 598
GC flavors, 559–560
generations, 534–537
HandleCollector class, 596–597
handles, 596–597
IDisposable interface. See IDisposable interface
managed heap, 530
managing, 530, 550, 553–554
Memory window, 474
Object.Finalize, 538
Performance Monitor, 538–539
pressure, 596
reference tree, 531–533
thread local storage (TLS), 553, 568, 580
unmanaged resources. See unmanaged resources
Virtual Memory Manager (VMM), 530
VirtualAlloc, 530
walkthrough, 531–533
weak references. See weak references
Memory window, 474
metadata
attributes, 356
collections, 371
exception handling, 352
heaps, 358
Intermediate Language Disassembler (ILDASM), 359, 360–364
manifest, 355
overview, 355
PEVerify, 359
pure time, 360
streams, 358
tables, 357
tokens, 357–358
validation, 359–360
method directives, 412–413
methods
abstract, 106
accessibility, 56
AddMemoryPressure, 596
anonymous. See anonymous methods
BeginInvoke, 307–309
calling, 425–427
Close, 584
Combine, 302
CreateDelegate, 381–382
Dispose. See Dispose method
DynamicInvoke, 382
EndInvoke, 309–310
Finalize, 562
function parameters, 58–61
generic. See generic methods
GetCustomAttribute, 396, 397
GetCustomAttributes, 396–397
GetGenericArguments, 386
GetGenericTypeDefinition, 385
GetInvocationList, 303
GetType, 385
global, 412
inheritance, 258–259
Invoke, 300
load, 415–417
MakeGenericType, 387
MulticastDelegate type, 306
Object.Equals, 92
Object.GetHashCode, 93
Object.GetType, 93
Object.MemberwiseClone, 94–95
Object.ReferenceEquals, 95
Object.ToString, 94
overriding, 258–259
overview, 56
private static, 317
RemoveMemoryPressure, 596
return types, 57–58
sealed, 107
static, 317
store, 415–417
syntax, 56
System.Array, 199–203
System.Enum, 79
System.Exception, 336
System.Object, 91
TraceSource, 476–477
Microsoft Build Engine (MSBuild)
command-line switches, 180
ItemGroup elements, 177
items, 177
overview, 135, 176
project files, 179–180
properties, 177
reserved properties, 177
syntax, 180
Target elements, 178
tasks, 178–179
walkthrough, 180–181
Microsoft Error Reporting dialog box, 504
Microsoft intermediate language programming. See MSIL programming
Microsoft Knowledge Base articles, xxiv
Microsoft Press Technology Updates Web page, xxiii
Microsoft Public Symbol Store Web site, 548
Microsoft Visual Studio 2005. See Visual Studio 2005
modifiers
list of, 47
members, 49
overview, 46
Modules window, 472–473
monitors, 540
MSBuild. See Microsoft Build Engine (MSBuild)
MSIL programming
arithmetic instructions, 429–433
arrays, 428
assembly directives, 406–409
boxing, 419
branching, 423–427
class directives, 409–412
Common Language Runtime (CLR), 401
complex tasks, 417
debugging with Visual Studio 2005 overview, 436
directives, 406
evaluation stacks, 405–406
exception clauses, 431
generic types, 265
Hello World application, 403–405
ILASM. See Intermediate Language Assembler (ILASM)
inheritance, 420–421
instructions, 414–417
interfaces, 421–422
Intermediate Language Assembler. See Intermediate Language Assembler (ILASM)
Just-in-time (JIT) compilers, 401
managing types, 417–418
method directives, 412–413
miscellaneous operations, 432
overview, 399, 401–403, 406
process execution, 433–436
roundtripping, 434–436
scoped exceptions, 432
structures, 422
multicast delegates
arrays of delegates, 301
exception handling, 312
invocation lists, 303
overview, 298
MulticastDelegate type, 306
multidimensional arrays
array hierarchy, 193
four-dimensional array example, 193
nested arrays, 193
overview, 187, 191
sample code, 193
syntax, 192
multiline comments (/* and */), 10
mutexes, 540