data members
constants, 52
fields, 52–54
overview, 51
Data menu, 141–142
Data Source Configuration Wizard, 141
data tips, 450
DataSet Visualizer, 452–453
DbgClr (CLR Debugger), 503
Debug configuration, 441
Debug Source Files window, 449
Debug toolbar, 464
debug windows
Autos window, 468
Breakpoints window, 464
Call Stack window, 471–472
Disassembly window, 474
Immediate window, 468–471
Locals window, 468
Memory window, 474
Modules window, 472–473
Output window, 464
overview, 464
Processes window, 473
Registers window, 475–476
Script Explorer window, 465
Threads window, 472
Watch window, 465–468
DebuggableAttribute, 501–503
DebuggableBrowsableState, 493
DebuggerBrowsableAttribute, 493–495
DebuggerDisplayAttribute
DebuggableBrowsableState, 493
DebuggerBrowsableAttribute, 493–495
DebuggerTypeProxyAttribute, 495–496
overview, 492–493
DebuggerTypeProxyAttribute, 495–496
debugging
ADPlus, 503, 525–526
advanced debugging overview, 498, 499–501
ASP.NET applications, 499
attaching debuggers to running processes, 439–440
class library projects, 441
CLR Debugger (DbgClr), 503
Configuration Manager, 442–443
console application projects, 440–441
Debug configuration, 441–442
DebuggableAttribute, 501–503
DebuggableBrowsableState, 493
DebuggerBrowsableAttribute, 493–495
DebuggerDisplayAttribute. See DebuggerDisplayAttribute
debuggers overview, 503
DebuggerTypeProxyAttribute, 495–496
Debugging Tools for Windows Web site, 500
Dr. Watson. See Dr. Watson
dump files, 496–498, 525
exception handling. See exception handling
Exceptions dialog box, 351–352
invasive vs. noninvasive, 500
Managed Debugger. See Managed Debugger (MDbg)
memory. See memory
metadata. See metadata
overview, 438
Performance Monitor, 503, 538–539
reflection. See reflection
Release configuration, 441–442
settings overview, 443
setup, 441–443
Son of Strike. See Son of Strike (SOS)
symbols, 547–549
threads. See threads
tracing. See tracing
Visual Studio 2005. See debugging with Visual Studio 2005
Visual Studio Debugger, 503
WinDbg. See Windows Debugger (WinDbg)
Windows Console Debugger. See Windows Console Debugger (CDB)
Windows Forms projects, 438
Debugging Tools for Windows Web site, 500
debugging with Visual Studio 2005
ADPlus, 503, 525–526
advanced debugging overview, 498, 499–501
Autos window, 468
breakpoints. See breakpoints
Call Stack window, 471–472
CLR Debugger (DbgClr), 503
controls for debugging sessions, 437–438
data tips, 450
DataSet Visualizer, 452–453
Debug pane of the Project Property pages, 449
Debug Source Files window, 449
Debug toolbar, 464
debug windows, 464
DebuggableBrowsableState, 493
DebuggerBrowsableAttribute, 493–495
DebuggerDisplayAttribute. See DebuggerDisplayAttribute
debuggers overview, 503
DebuggerTypeProxyAttribute, 495–496
Disassembly window, 474
Dr. Watson. See Dr. Watson
dump files, 496–498, 525
Edit And Continue window, 445–446
exception handling. See exception handling
Exceptions dialog box, 351–352
General window, 443–445
Immediate window, 468–471
Just-In-Time Debugging window, 446–448
Locals window, 468
Managed Debugger. See Managed Debugger (MDbg)
memory. See memory
Modules window, 472–473
Output window, 464
overview, 436, 437
Performance Monitor, 503, 538–539
Processes window, 473
Registers window, 475–476
Script Explorer window, 465
settings for projects, 449–450
settings overview, 443
Son of Strike. See Son of Strike (SOS)
symbols, 547–549
threads. See threads
Threads window, 472
tracing. See tracing
transferring from action to break mode, 438
user interface, 450–453
Visual Studio Debugger, 503
visualizers, 451
Watch window, 465–468
WinDbg. See Windows Debugger (WinDbg)
Windows Console Debugger. See Windows Console Debugger (CDB)
XML Visualizer, 451
Declarations elements, 167
declarative preprocessor directives, 13
Decrement (-) operator overloading, 632
deep object graphs, 574
default constructor constraints, 255
delegate inference, 299
delegate keyword
anonymous methods, 313
overview, 296
delegates
accessibility, 298
arrays, 300
asynchronous delegate diagram, 311–312
asynchronous invocation, 307–310
callbacks, 291
classes, 297–298
combining, 302
constructors, 298
contravariance, 299–300
covariance, 299–300
CreateDelegate method, 381–382
creating, 298–300
defining, 297–298
delegate inference, 299
DynamicInvoke method, 382
exceptions, 312
function pointers, 295
generics, 306–307
internals, 312
invocation lists, 298
invoking, 300
late binding delegates, 380–382
members, 306
methods, 306
multicast delegates, 298, 301
overview, 291, 295–297, 380
properties, 306
removing, 302
syntax, 298
System.MulticastDelegate class, 301–302
delimited comments (/* and */), 10
delimited documentation tags, 12–13
derivation constraints
generic methods, 249
generic types, 249
integer constraints, 251
nodes, 250
overview, 248
restrictions, 252
type parameters, 248, 250, 251
derived types, 83
deserialization, 263
destructors
accessibility, 68
Finalize method, 563
finalizers, 562
Object.Finalize, 538
overview, 68, 108–111
syntax, 68
diagnostic directives, 15
directional attributes, 620
directives
assembly, 406–409
class, 409–412
method, 412–413
overview, 406
Windows Debugger (WinDbg), 518–519
Disassembly window, 474
display memory commands, 515–516
Disposable pattern
Close method, 584
considerations, 582
Dispose method, 582–583
overview, 581–582
reusable objects, 585
thread-safe Dispose method, 585
Dispose method
Close method, 584
Disposable pattern considerations, 582
Disposable pattern overview, 581–582
disposing inner objects, 586–587
finalizers, 577
finally block, 577
multiple calls, 582–583
overview, 577
sample code, 577
thread safe, 585
DllImport
CallingConvention, 613–614
EntryPoint, 613
ExactSpelling, 614–615
overview, 612–613
PreserveSig, 615
SetLastError, 615–616
DllImportAttribute, 612
documentation comments (///), 10–12
dot punctuators, 9
downcasting, 278
downloading code samples for this book, xxiv
Dr. Watson
configuring, 528
overview, 503, 527
walkthrough, 528
drwtsn32.exe. See Dr. Watson
dual iteration, 287–288
dump files
ADPlus, 525–526
overview, 496–498, 525
dynamic binding
overview, 373
sample code, 374
syntax, 373, 374
dynamic invocation
binders, 375–378
overview, 373
DynamicInvoke method, 382