ICloneable interface, 590, 616–618, 620
ICollection interface, 320, 590, 709, 710, 793
ICollection<KeyValuePair<TK,TV>> interface, 736
ICollection<T> interface, 734−735
IComparable interface, 320, 523, 570, 573, 578, 583, 588, 591, 615–616, 620
implementing, 758–759
IComparable<bool> interface, 588
IComparable<char> interface, 583
IComparable<decimal> interface, 578
IComparable<string> interface, 620
IComparable<T> interface, 525, 570, 573, 591, 615, 616
implementing, 760–761
IComparer interface, 590, 709, 713
using an 761–763
IComparer<T> interface, 590, 734, 737
using, 763–764
IComponent interface, 808, 809
IConvertible interface, 570, 573, 578, 583, 588, 616, 620
Identifiers, 33–34
IDeserializationCallback interface, 721
IDictionary interface, 709, 711–712, 766
IDictionary<TK,TV> interface, 734, 736
IDictionaryEnumerator interface, 709, 713, 722, 766–767
IDisposable interface, 554, 555, 809, 810
IEEERemainder( ), 565
IEnumerable interface, 590, 620, 708, 709, 712–713, 769, 770, 773, 793
implementing, 767–769
IEnumerable<KeyValuePair<TK,TV>> interface, 736
IEnumerable<string> interface, 620
IEnumerable<T> interface, 734, 736, 774
IEnumerator interface, 320, 708, 709, 713, 764–765, 769, 770, 772
implementing, 767–769
IEnumerator<T> interface, 734, 736–737, 764, 765, 774
IEqualityComparer interface, 709, 713
IEqualityComparer<T> interface, 734, 737
IEquatable<bool> interface, 588
IEquatable<char> interface, 583
IEquatable<decimal> interface, 578
IEquatable<string> interface, 620
IEquatable<T> interface, 570, 573, 618
#if directive, 439, 440–442, 479
if statement, 26–28, 85–88
and code blocks, 29–30, 85
if-else-if ladder, 87–88
IFormattable interface, 570, 573, 578, 618
IFormatProvider interface, 570, 618, 642
IHashCodeProvider interface, 709
IList interface, 590, 709, 710–711
methods, table of, 711
IList<T> interface, 734, 735
ImpersonationLevel property, 782
Implication operation, 69–70
implicit keyword, 231
Increment operator (++), 29, 63, 64–67
overloading, 213–216
Increment( ), 696–697
Indentation style, 32
Indexers, 241–250, 257–262
abstract, 295
and generics, 532
interface, 314–316
multidimensional, 248–250
one-dimensional, 241–248
overloading, 245–247
read-only or write-only, creating, 245
restrictions, 248
IndexOf( ), 154, 604, 605, 629, 632–633, 710, 711, 716, 735, 739
IndexOf<T>( ), 604, 605
IndexOfAny( ), 629, 633
IndexOfKey( ), 723, 724, 751
IndexOfValue( ), 723, 724, 751
IndexOutOfRangeException, 139, 337, 340, 350
Indirection, 534
multiple, 543–544
Inheritance, 12, 13, 263–303
basics of, 263–266
and class member access, 266–270
and constructors, 270–276, 281, 282, 284–287
and generic classes, 526–529
and interfaces, 316–317
multilevel, 266, 279–281
name hiding and, 276–279, 317
sealed to prevent, using, 298
structures and, 326
syntax for class, 265
Inherited named parameter, 479
Initialize( ), 605
Insert( ), 640–641, 710, 711, 735
InsertRange( ), 714, 716, 739
Instance of a class, 109, 111
See also Object(s)
Instance variables
accessing, 111, 119
and constructors, 127
declaring, 111
definition of, 12
hiding, 134
this to access hidden, using, 134
as unique to their object, 111, 113–114
int value type, 23, 24–25, 36, 37, 38
Int16 .NET structure, 392, 393, 569, 570
Int32 .NET structure, 392, 393, 569, 570
Int64 .NET structure, 392, 393, 569, 570
Int64BitsToDouble( ), 611
Integer(s), 23, 36–38
literals, 47
promotion, 59
Integer structures, 570
methods, table of, 570–572
Interface(s), 305–325
choosing abstract class vs., 320
and events, 418
explicit implementation of, 317–320
general form of, 306
generic, 519–522
implementing, 306–310
indexers, 314–316
and inheritance, 316–317
.NET Framework standard, 320
partial, 552
properties, 312–314
reference variables, 310–312, 325
System, list of, 562–563
interface keyword, 306
Interlocked class, 696
internal access modifier, 161, 162, 446
InternalsVisibleTo attribute, 552
Internet, 4–5, 777, 780
access fundamentals, 780–786
and portability, 5
InvalidCastException, 350
InvalidOperationException, 548, 728, 753, 787
Invoke( ), 457–459, 460
I/O, 361–394
array, 389–390
console, 365–370
redirection, 362, 369–370, 379–380, 390
streams. See Stream(s)
string, 390–392
I/O, file, 370–388
and binary data, 380–387
byte-oriented, 370–375
character-based, 370, 375–379
random access, 387–388
IOException, 362, 364, 366, 371, 372, 373, 377, 379, 382, 387, 787
is operator, 447–448, 449
IsAbstract property, 450–451
IsAlive property, 666–667
IsBackground property, 671
IsBusy property, 799
IsClass property, 450–451
IsControl( ), 584
IsDefined( ), 452
IsDigit( ), 583, 584
ISerializable interface, 721
IsFixedSize property, 597, 711, 712
IsFromCache property, 783, 791
IsHighSurrogate( ), 584
IsInfinity( ), 573, 575
ISite interface, 809, 821
IsLetter( ), 585
IsLetterOrDigit( ), 585
IsLittleEndian field, 610
IsLower( ), 585
IsLowSurrogate( ), 585
IsMutuallyAuthenticated property, 783, 791
IsNaN( ), 573, 575
IsNegativeInfinity( ), 573, 576
IsNumber( ), 585
IsPositiveInfinity( ), 573, 576
IsPunctuation( ), 585
IsReadOnly property, 597, 711, 712, 735
IsSeparator( ), 585
IsSurrogate( ), 585
IsSymbol( ), 586
IsSynchronized property, 597, 710, 731
IsUpper( ), 586
IsWhiteSpace( ), 586
Iterators, 708, 769–775
generic, 774–775
named, 770, 772–774
stopping, 771–772