ICollection<T> interface, 229–230, 247
IComparable<T> interface, 248–250
IComparer<T> interface, 250–251
IConvertible interface, 201
IDictionary<TKey, TValue> interface, 231–233, 239, 241, 247
IDisposable interface, 411–412
i18n. See internationalization
IEnumerable<T> interface, 233–236, 247
IEnumerator<T> interface, 233–236, 247
IEqualityComparer<T> interface, 250–251
IEquatable<T> interface, 248–250
IFormatProvider interface, 314
IHashCodeProvider interface, 247
IIS (Internet Information Services), 5, 294
IL (Intermediate Language)
allocating and initializing types, 92–93
arithmetic operations, 91
arrays, 99
assembling, 83
binary instruction size for, 86
bitwise operations, 91
boxing and unboxing values, 93
branch instructions, 91–92
comparison operations, 91
definition of, 5, 82
disassembling, 83
generated by compilation, 82–83
labels, 91
loading values on stack
arguments and locals, 89–90
arrays, 99
constants, 88–89
definition of, 87–88
fields, 90
indirect loads, 90
macros, 568–574
methods, calling and returning from, 93–97
object model instructions, 562–568
prefixes for instructions, 574–575
primitive instructions, 550–562
primitive types, 17–18, 171–172
stack-based nature of, 84–86
storing values from stack
arguments of methods, 89–90
arrays, 99
definition of, 87–88
fields, 90
indirect stores, 90
type identity checks, 97–98
type verification for, 86
ilasm.exe tool, 83
ildasm.exe tool, 83
IList<T> interface, 230–231, 236, 247
imperative code, 342–343
impersonation, 348
implementation inheritance, 50
indexable collections, 230–231
indexer properties, 44–45
IndexOf method
lists, 237
strings, 192
IndexOutOfRangeException exception, 210
indirect calls, 94, 129
info APIs
assembly information, 498–500
definition of, 496, 498
example using, 509–511
generics, 507–509
handles for, 511–514
method information, 503–505
module information, 498–500
properties, 507
tokens for, 496, 511–514
type information, 500–502
type instances, constructing, 505–506
inheritance
implementation inheritance, 50
interface inheritance, 51–57
multiple inheritance, 54
private interface inheritance, 54–55
subclassing using, 50–51
inheritance demands, CAS, 344
initblk instruction, IL, 555
initobj instruction, IL, 92–93, 563
initonly keyword, IL, 27
input and output. See I/O
Insert method, StringBuilder class, 202
instance members, 26
instance methods, 31
instantiation. See constructors
instruction reordering, 388–389
int8 type, IL, 17, 172
int16 type, IL, 17, 172
int32 type, IL, 17, 172
int64 type, IL, 17, 172
integers, 180–182
interface inheritance
abstract classes and, 51–52, 56–57
definition of, 51
interfaces and, 52–57
multiple inheritance, 54
private interface inheritance, 54–55
interfaces
definition of, 52–53
method invocations and, 53
reimplementation of, 55–56
when to use, 56–57
Interlocked class, 378–381
interlocked operations, 378–381
Intermediate Language. See IL
internal keyword, C#, 25
InternalsVisibleToAttribute attribute, 145
internationalization. See also cultures; resources for cultural preferences
books about, 325
definition of, 301–302
encodings and, 302, 320–321, 325
example scenarios of, 306–309
globalization, 302, 305
locale-specific features, 305
localization, 302, 306–307
process of, 305–306
reasons for, 304–305
regional formatting, 307–309
support for, 302
translation of content, 305, 306–307
Internet Information Services (IIS), 5, 294
interoperability
books about, 436
C++/CLI language for, 431
CERs (Constrained Execution Regions), 417–421
COM interoperability, 421–430
definition of, 404–405
memory management, 408–412
notifying GC of resource consumption, 416–417
P/Invoke for, 431–433
pointers and, 405–408
reasons for, 403–404
resource management, 410–416
type systems, bridging, 434–436
InvalidAddressException exception, 210
InvalidCastException exception, 209
InvalidOperationException exception, 211
invariant culture, 303, 313–314
I/O completion ports, 273–274
I/O (input and output). See also files; streams
books about, 298–299
definition of, 255–256
isolated storage, 337
overlapped I/O, 273–274
standard devices, 280–282
IPEndPoint class, 290
IPrinciple interface, 347
IronPython language, managed code written in, 5
is keyword, C#, 98
IsDefined method, System.Enum type, 69
IsInRole method, IPrinciple interface, 347
isinst instruction, IL, 97–98, 563
IsMatch method, Regex class, 483–484, 488
isolated storage, 337
isolation levels
for threads, 354–355
for transactions, 539
isolation of transactions, 535
ISO-639 standard, 309
ISO-3166 standard, 309
iterators, 234–236