Machine policy level, 341
macros, IL, 568–574
managed code. See also interoperability
definition of, 81
generating type libraries from, 429–430
proxies for, 424–426
Managed Debugging Assistants (MDAs), 439
managed pointers, 35
managed threads, 355
manifest, assembly, 135, 138–141
mapping an assembly, 146
maps. See dictionaries
marker attributes, 516
marshaling, 434, 435–436
Match class, 488–489
Match method, Regex class, 484, 488
Matches method, Regex class, 484, 488
.maxstack directive, IL, 83
MDAs (Managed Debugging Assistants), 439
MemberRef section, assembly metadata, 136
members of types. See type members
memory consistency model, 388
memory corruption, type safety and, 11–12
memory fence, instruction reordering, 389
memory gates, 120
memory layout
for delegates, 521–522
for objects, 20–21
for structs, controlling, 29–30
for values, 21–22
memory management
allocation of memory, 115–120
definition of, 115
finalization, 123–124
garbage collection (GC), 120–123
interoperability and, 408–412
Out of Memory (OOM), 119–120
Stack Overflow (SO), 118–119
memory models
books about, 402
definition of, 388–390
memory pressure, 203–204, 416–417
memory streams, 279–280
MemoryStream class, 279–280
merging strings, 192
meta-characters, in regular expressions
alternations, 474–475
character classes, 473
comments, 474
conditionals, 475
definition of, 464, 469–470
greediness and, 479–481
grouping, 477–479
lookahead and lookbehind meta-characters, 476–477
positional matching, 464, 475–477
quantifiers, 464, 470, 481
metadata
in assembly
assembly identity, 137–138
definition of, 135, 136–137
manifest and, 138–141
signing assembly, 141–143
strong name, 141
emitting, 529–532
generated by compilation, 82–83
.method directive, IL, 83
method table, 21, 125
MethodDef section, assembly metadata, 136, 141
MethodInfo type, 503
MethodRef section, assembly metadata, 136, 141
methods
abstract methods, 51
anonymous methods, 527–529
arguments of
definition of, 30
loading and storing from stack, 89–90
passing style of, 33–35
building, 530–531
calling, 93–97, 126–131
constrained calls, 95–96
definition of, 30–31
epilogue for, 129–130
exception handlers in, 38
indirect calls, 94, 129
info APIs for, 503–505
instance methods, 31
of interfaces, invocation of, 53
invoking, 504
locals of
definition of, 31–32
loading and storing from stack, 89–90
new slots, 37–38
output parameters, 34
overloading, 32
overriding, 36–37
parameters of, 30
private interface inheritance and, 55
prologue for, 129–130
return parameter of, 30
returning from, 94
sealing, 57
static calls, 93–94
static methods, 31
subclassing and, 35–38
tail calls, 94–95
variable argument methods, 35
virtual calls, 93–94
virtual methods
calling, 93–94, 128
definition of, 36–37
nonvirtual calls to, 96–97
Microsoft Transaction Server (MTS), 423
Microsoft Windows APIs, history of, 3–4
MIME (Multipurpose Internet Mail Extensions), 297
missed pulse, 384
MissingFieldException exception, 210
MissingMethodException exception, 210
mixed mode accessibility for properties, 45
mkrefany instruction, IL, 558
ML language
tail calls and, 94
typing strategy of, 13
MMC, modifying policy using, 341
Module class, 498
modules in assembly
definition of, 134–135
info APIs for, 498–500
money. See currency
monitor-based events, 383–384
monitors for objects, 369–372
Move method, files, 275
MoveTo method, directories, 275
mscoree.dll file, 136
MTA (Multi-Threaded Apartment), 390
MTS (Microsoft Transaction Server), 423
mul instruction, IL, 91, 559
multidimensional arrays, 217–220
multiple inheritance, 54
Multipurpose Internet Mail Extensions (MIME), 297
mutexes, 372–373