\t escape, in regular expressions, 468
T& type, 35
tail calls, 94–95
tail. prefix, IL, 575
TcpClient class, 292
TCP/IP (Transmission Control Protocol/Internet Protocol), 291–292
TcpListener class, 292
TEB (Thread Environment Block), 347, 355, 366
temporary files, 276
terminate and stay resident programs (TSRs), 353
text readers, 264–268
text resources, 315–316
text writers, 264–268
this keyword, C#, 40, 41
this pointer, 31
thread affinity, 388
Thread class, 356
Thread Environment Block (TEB), 347, 355, 366
Thread Local Storage (TLS), 355, 366–367
ThreadPool class, 356–357
threads
aborted, exception thrown by, 109–110
aborting, 364–365
active, obtaining reference to, 356
APM (asynchronous programming model), 385–387
background threads, 365–366
books about, 401–402
COM apartments, 390–391, 402
concurrency problems with
deadlocks, 381–382
race condition, 355, 369
starvation, 382
creating, 359–360
critical sections, 387–388
definition of, 353–355
events and, 382–385
explicit management of, 358–366
Hyper-Threading (HT) technology, 391–392
identity of, 365
interrupting, 362–363
isolation, levels of, 354–355
joining, 363–364
managed threads, 355
mapped to fibers, 355
memory models, 388–390
number executing, 355
overhead used by, 355
pool of, 356–357
priority of, 366, 382
resuming, 363
sleeping, 362
spin-loops, 391–392
stack size for, controlling, 360–361
starting, 361
state of, scheduling, 358–365
state of, sharing
ACLs (Access Control Lists), 374
critical sections, 368–369
interlocked operations, 378–381
lock blocks, 371
monitors, 369–372
mutexes, 372–373
race conditions and, 369
reader-writer locks, 374–378
semaphores, 373–374
synchronized methods, 371–372
suspending, 363
thread affinity, 388
thread start function for, 359–360
thread static fields, 367–368
TLS (Thread Local Storage), 355, 366–367
UI threads, 387
throw instruction, IL, 101, 568
time types, 192–195
timers, 385
times, regional, 308
TimeSpan type, BCL, 195, 208
Title method, Console class, 281
TLS (Thread Local Storage), 355, 366–367
TM (transaction manager), 533–535, 546–548
Tokens, assembly metadata, 136
tokens, for info APIs, 496, 511–514
ToLocalTime method, DateTime type, 195
ToLower method, strings, 188, 323–325
ToString method
numbers, 196
Object type, 179, 185, 321–322
ToUniversalTime method, DateTime type, 195
ToUpper method, strings, 188, 323–325
Trace class, 444, 449–450
TraceFilter class, 444, 456–457, 461
TraceListener class, 444, 451–457, 460–461
TraceSource class, 443, 445–449, 457–460
TraceSwitch class, 456
tracing
architecture of, 441–444
asserts, 446–449, 462
books about, 462
compared to exceptions, 441
configuration of, 457–462
definition of, 440
filtering, 454–457
output of
to console, 452–453
to streams or files, 452–453
Windows Event Log, 452
to XML, 453
trace listeners
configuring, 460–461
definition of, 442, 444
filters for, 461
using, 451–457
trace sources
conditional compilation for, 450–451
configuring, 457–460
Debug class, 449–450
definition of, 442
Trace class, 449–450
TraceSource class, 445–449
types of, 443–444
transaction manager (TM), 533–535, 546–548
transactions
ACID properties of, 535
ambient transactions, 536
books about, 548
committed, 534, 537–538
deadlock prevention, 538–539
declarative transactions, 544–546
definition of, 533–535
dependent, 543–544
Dispose method and, 540
distributed, permission to use, 339
example of, 540–541
isolation levels for, 539
managing with Enterprise Services, 544–546
nesting, 541–543
promotion of, 547–548
rolled back, 534, 537–538
scope of
construction of, 537
declaring, 536–537
explicit, 537
two-phase commit (2PC), 548
translation. See internationalization
Transmission Control Protocol/Internet Protocol (TCP/IP), 291–292
Trim method, strings, 189–190
trimming strings, 189–190
trust, CAS, 332–335
try/catch blocks
catch on Boolean filter, 104–105
catch on type filter, 102–104
definition of, 102
ensuring memory release using, 409
examples of, 100–101
TryParse method, strings, 321–322
TSRs (terminate and stay resident programs), 353
two-pass exception model, 101, 111–113
two-phase commit (2PC), 548
type arity, 69–70
type constructors, 42
type forwarding, 160–162
type identity, 97–98, 179
type initializers (type constructors), 42
type instantiation, 70
type members
accessibility of, 25–26
constructors
chaining, 40–41
default constructors, 39–40
definition of, 38–39
field initialization in, 41–42
type constructors, 42
unhandled exceptions in, 42–43
definition of, 26
events
definition of, 45–46, 382–383
delegate chains and, 523
exposed by AppDomains, 394
monitor-based events, 383–384
timers, 385
Win32 events, 384–385
fields
constant (literal) fields, 28
definition of, 26–27
memory layout for structs, controlling, 29–30
read-only fields, 27–28
size of, 27
instance members, 26
methods
abstract methods, 51
argument passing style of, 33–35
arguments of, 30, 89–90
definition of, 30–31
exception handlers in, 38
instance methods, 31
loading and storing from stack, 89–90
locals of, 31–32
new slots, 37–38
output parameters, 34
overloading, 32
overriding, 36–37
parameters of, 30
return parameter of, 30
static methods, 31
subclassing and, 35–38
variable argument methods, 35
virtual methods, 36–37, 93–94, 96–97, 128
properties
definition of, 43–44
indexer properties, 44–45
mixed mode accessibility for, 45
static members, 26
visibility of, 25–26
type safety. See also CTS (Common Type System)
collections and, 72–73
enumerations and, 68–69
example of unsafe code, 12–13
importance of, 11
verification of, 9, 11–12, 86
type systems. See also CTS (Common Type System)
books about, 78–79
bridging, 434–436
definition of, 9
static compared to dynamic, 13–16
type unification, 16–18
type verification, 9, 11–12, 86
TypeDef section, assembly metadata, 136, 141
TypeLoadException exception, 210
TypeRef section, assembly metadata, 136, 141
types. See also delegates; primitive types; reference types (classes); value types (structures)
accessibility of, 25–26, 45
blittable types, 434
building, 530
constructors for
chaining, 40–41
default constructors, 39–40
definition of, 38–39
field initialization in, 41–42
type constructors, 42
unhandled exceptions in, 42–43
custom attributes (CAs), 64–65, 496, 514–519
enumerations
definition of, 65–67
flags-style enumerations, 67–68, 69
helper methods for, 69
type safety and, 68–69
info APIs for, 500–502
nested, 26
organizing into namespaces, 58–60
polymorphism and, 49–50
runtime type checking, 58
sealing, 57
subclassing, 49–50
visibility of, 25–26