lAsyncResult Interface, 346
AsyncState property, 346
AsyncWaitHandle property, 346
CompletedSynchronously property, 346
implemented by AsyncResult class, 346
IsCompleted property, 346
ICodeGenerator interface, 312
GenerateCodeFromCompileUnit method, 331
ICryptoTransform Interface
InputBlockSize property, 501
OutputBlockSize property, 501
System.Security.Cryptography, 501
TransformBlock() method, 501
TransformFinalBlock() method, 501
IDisposable Interface
developer-controlled memory management, 206
Dispose() method, 227
supplementing garbage collector, 210
Idle event
Application class, 425
Idle processing
compared to multithreading, 425
programming Windows Forms using message loop, 425
IJW
advantage of, 144
calling unmanaged code with IJW, 141
P/Invoke, compared to, 142
performance issues, 265
IL, 63
arrays in IL, 86
manipulating vectors, 87
attributes in IL, 101
binary format, 13
opcodes, 13
boxing and unboxing in IL, 81
calling unmanaged code with P/Invoke, 91
converting IL assembly to IL, 13
converting IL to IL assembly, 13
data types, 24
debugging IL, 52
compile-time IL errors, 56
CorDbg.exe, 54
DbgClr.exe, 54
IL from high-level languages, 54
peverify.exe, 60
Visual Studio .NET, 52
delegates in IL, 104
dissassembling IL, 106
dynamic code generation, optimisation using, 310
embedding binary data in assembly, 94
enumerations in IL, 84
evaluation stack, 17
abstract stack machines, 24
events in IL, 105
exception handling, 99
.try directive, 100
fault blocks, 98
filter blocks, 98
guarded blocks, 98
Hello World IL program, 14
objects in IL, 64
PE file structure, 163
programming IL, 33
.class directive, 33
.locals directive, 44
.namespace directive, 33
conditional branches, 36
defining methods with arguments, 40
keywords for type members, 34
local variables, 44
looping, 45
passing by reference, 46
unconditional branches, 35
reference types in IL, 75
constructors, 76
storing IL binary code in assembly, 164
metadata, 166
performance, 165
space, 165
value types in IL, 64
constructors, 70
fields, 64
methods, 67
properties, 67
virtual machine, 20
virtual methods in IL, 78
callvirt command, 80
declaring methods, 78
invoking methods, 80
Visual Basic .NET modules compared to IL modules, 110
IL assembly, 13
converting IL assembly to IL, 13
converting IL to IL assembly, 13
dissassembling IL assembly, 106
ECMA algorithm, checking using, 139
families of IL instructions, 30
Idc instructions, 30
suffixes, 31
groups of IL instructions add Instruction, 30
JIT compiler, validation of code in, 135
syntax, 15
IL source code, see IL assembly.
ILAsm, see IL assembly.
ilasm.exe
converting IL assembly to IL, 13
debugging IL, 52
IL from high-level languages, 54
generating invalid program, 57
using with ildasm.exe, 106
ildasm.exe
compiling Hello World IL program, 15
converting IL to IL assembly, 13
debugging IL
IL from high-level languages, 54
dissassembling IL, 106
DumpBin.exe, compared to, 174
examining DLLs, 174
release builds, checking for, 275
using with ilasm.exe, 106
viewing assembly, 174
viewing C# generated IL, 106
viewing C++ generated IL, 111
viewing Visual Basic .NET generated IL, 109
ILGenerator class
Emit() method, 315
overloads
Idstr command, 318
System.Reflection.Emit, 314
Image class
FromHbitmap() method, 451
Save() method, 451
System.Drawing, 451
Image files
PE files, 159
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR field
PE header, 164
Imperative security, 471
CAS, 471
CLR, 471
CodeAccessPermlssion class, 471
declarative security, compared to, 473
FileDialogPermission class, 471
Security permission, 471
SecurityPermission class, 471
SiteIdentityPermission class, 472
IndentString property
CodeGeneratorOptions class, 331
init keyword
.locals directive, 75
initblk command, 139
initobj instruction
initializing value type by zeroing fields, 75
inlining methods
JIT optimizations, 245
limitations, 246
virtual methods not inlined, 246
InputBlockSize property
ICryptoTransform interface, 501
Int32 structure, 82
ToString() method, 82
Integers
using IL data types on evaluation stack, 29
Interlocked class
Decrement() method, 377
System.Threading, 361
thread synchronization, 361
Intermediate Language, see IL.
Internal Call
calling unmanaged code with Internal Call, 141
Internet permission, 468
Interruptible code
control of threads by garbage collector, 212
Intersect() method
IPermission interface, 483
IntPtr structure, 152
handles, 222
ToPointer() method, 154
Invalid program
compile-time IL errors, 57
generating using ilasm.exe, 57
Invalidate() method
Control class, 422
Invoke() method
Control class, 424
IPermission Interface
Copy() method, 483
Intersect() method, 483
IsSubsetOf() method, 483
System.Security, 477
IsAlive property
Thread class, 378
IsBackground property
Thread class, 342
IsCompleted property
IAsyncResult interface, 346
ISecurityEncodable Interface
FromXml() method, 484
System.Security, 477
ToXml() method, 484
IsJITOptimizerDisabled property
DebuggableAttribute class, 249
IStackWalk interface
Assert() method, 477
Demand() method, 477
System.Security, 477
IsTrackingEnabled property
DebuggableAttribute class, 249
It Just Works, see IJW
ItemHeight property
ListBox class, 445
IV property
DESCryptoServiceProvider class, 502