paired operators, 635–637
parameterized templates compared to generics, 265
parameters
arrays, 213–214
bound parameters, 243
functions, 58–61
multiple parameters for generics, 241
params keyword, 211–212
pointers, 608–611
type parameters, 239
parametric polymorphism
compared to generics, 265
overview, 238
params keyword, 211–212
partial classes, 74–76
PE COFF (Portable Executable Common Object File Format), 352
performance, function call, 383
Performance Monitor, 503, 538–539
PEVerify
arguments, 359
metadata validation, 359
options, 359–360
syntax, 359
pinned pointers, 599
PInvoke. See Platform invocation services (PInvoke)
Platform invocation services (PInvoke)
BestFitMapping, 617
CharSet, 617
directional attributes, 620
DllImport, 612–616
explicit marshaling, 622–624
fixed-size buffers, 624–625
formatted types, 618–620
Interop marshaler, 611
LayoutKind enumeration, 618
MarshalAs attribute, 624
overview, 602, 611
StringBuilder class, 620–621
ThrowOnUnmappableChar, 617
unmanaged callbacks, 621–622
pointer operators
list of, 24
overview, 24
sample code, 24
pointers
exposing, 605
fixed statement, 609–610
initializing, 605
parameters, 608–611
pinned, 599
raw, 599
return types, 608–611
stackalloc command, 610–611
symbols, 606–607
syntax, 605
unsafe code, 604–607
void, 605
polymorphism
advantages, 120
inheritance, 236
interfaces, 123
new modifier, 124–125
overview, 119–123
parametric, 238
requirements, 121
Portable Executable Common Object File Format (PE COFF), 352
position parameters, 391
predefined attributes, 390
preprocessor directives
conditional, 14
declarative, 13
diagnostic, 15
line, 16
overview, 13
region, 15
PreserveSig, 615
Preview Changes dialog box, 172
primitives
list of, 29–30
overview, 29
private constructors, 63
private fields, 53
private nested classes, 317
private static methods, 317
process execution, 433–436
Processes window, 473
profiles, 160
program samples, 30–31
programmer-defined custom attributes, 390
propagating exceptions, 330–331
properties
abstract, 106
error handling, 72
generics, 238
IAsyncResult object, 308
indexers, compared to, 208–209
IsGeneric Boolean, 383
IsGenericMethod, 383
IsGenericTypeDefinition Boolean, 383
Microsoft Build Engine (MSBuild), 177
MulticastDelegate type, 306
overview, 69–72
read-only, 72
sealed, 107
SourceSwitch, 480
syntax, 70
System.Array, 203–204
System.Exception, 337
TraceListener class, 482
TraceSource, 478
validating object states, 72
write-only, 72
pseudo-custom attributes, 390
Public Symbol Store Web site, 548
Publish Wizard, 185–186
publishers, 320
punctuators
colon, 9
comma, 9
dot, 9
overview, 8
semicolon, 8
pure time, 360