C format specifier, 46
C, history of, 3–4
C++, history of, 4
C#
as a component-oriented language, 6−7, 807
history of, 3, 5–7
Internet and, 777
and Java, 3, 6
keywords, 32, 33
library, 19, 34, 38, 559, 561
and the .NET Framework, 6, 7–8
program compilation, 8, 14–18
as a strongly typed language, 35, 283
version 2.0, new features in, 7
CachePolicy property, 782, 799
Call-by-reference
using ref to create a, 172–174
vs. call-by-value, 170–172
CanRead property, 363
CanSeek property, 363
CanTimeout property, 363
CanWrite property, 363
Capacity property, 716–717, 738, 752
Case sensitivity and C#, 21
case statement, 89, 91–92
and goto, 106–107
Cast(s), 42, 54, 56–58, 60–61, 483, 487, 488–489
as operator, using the, 448–450
and explicit conversion operators, 231, 233–234
catch statement(s), 336–342
for catching all exceptions, 343
and catching derived class exceptions, 355–357
and finally, 348
multiple, using, 342–343
parameter, with a, 348–350
Ceiling( ), 564, 578
Char structure, 569, 583–588
methods, table of, 583–587
char value type, 36, 42
Character(s), 42
constants (literals), 47, 50
escape sequences, 48–50
CharacterSet property, 791
checked statement, 357–359
checksum #pragma option, 445
Class(es), 109–114
abstract, 295–298, 305, 320
base, definition of, 263
as a component, 808
constructor. See Constructor(s)
definition of, 8, 12, 19, 109
derived, definition of, 263
factory, 182–183, 204
general form of, 109–110, 266
generic. See Generic class
and interfaces, 305, 306–310
library, .NET, 7, 8, 19, 34, 38, 559, 561
member. See Member(s), class
partial, 551–552
sealed, 298
static, 206–207
System, list of, 561–562
well-designed, 110
class keyword, 19, 110, 492, 505, 508
Clear( ), 599, 710, 711, 712, 726, 729, 735
Click event, 832, 837
Client, definition of, 807
Clone( ), 599, 616–618
Close( ), 362, 364, 365, 371, 373, 381, 382, 704, 783, 786
CloseMainWindow( ), 704
CLR (Common Language Runtime), 8, 9, 14, 335, 350, 533
CLS (Common Language Specification), 7
Code
blocks. See Blocks, code
managed vs. unmanaged, 8–9, 533
point, Unicode character, 583
section, critical, 553
unreachable, 126, 355
unsafe, 533, 537
Collect( ), 613, 614
Collection(s), 320, 707–775
bit-based, 707, 708, 730–733
definition of, 102, 150, 707
specialized, 707, 708, 733
storing user-defined classes in, 755–758
using an enumerator to access, 764–767
Collection(s), generic, 707, 708, 734–755
classes, 737–755
interfaces, 734–737
Collection(s), non-generic, 707, 708, 709–730
classes, 714–730
interfaces, 709–713
CollectionBase class, 733
CollectionsUtil class, 733
COM components, 807, 808–809
Comments, 19, 20, 867
Common Language Runtime (CLR), 8, 9, 14, 335, 350, 533
Common Language Specification (CLS), 9
Common Type System (CTS), 9
Compare( ), 579, 590, 621, 622−623, 624−625, 713, 737, 761, 763
comparer property, 722
Comparer property, 747, 749, 752
CompareOrdinal( ), 623
CompareTo( ), 154, 523, 525, 570, 573, 575, 579, 583, 589, 591, 615, 623, 758, 760
CompareTo(T obj), 525, 591, 616
Compilation, conditional, 440
Compiler
C# command-line, 14–15
JIT, 8, 14, 532
Component class, 808, 809–810, 821, 827
Component property, 821
Component(s), 807–823
and C#, 6−7, 807, 808
characteristics of, 807
compiling, 811
and component-oriented programming, 823
disposed, preventing use of a, 818–819
model, 808
Components property, 821
Compression.DeflateStream class, 363
Compression.GZipStream class, 363
Concat( ), 627–629
Conditional built-in attribute, 478, 479–480
ConnectionGroupName property, 782
Console class, 21, 362, 365, 367, 369, 379
Console.Error, 361, 362, 365, 369–370
Console.In, 361, 362, 365–369, 379
Console.Out, 361–362, 365, 369–370, 379–380
ConsoleKeyInfo structure, 368
ConsoleModifiers enumeration, 368
const modifier, 555
Constants, 35, 47
backslash character, 48
named integer, 305, 330, 331
ConstrainedCopy( ), 600
Constraint(s), 491–509
base class, 492–500, 507–508
constructor, 492, 504–505, 508
and generic interfaces, 522
and generic methods, 515
interface, 492, 500–504, 508
multiple, using, 508–509
naked type, 508
reference type, 492, 505, 506–507, 508
value type, 492, 505, 508
Constructed type
and method overloading, 531
open vs. closed, 486
Constructor(s), 126–130
base clause to call a base class, 272–276, 281
in class hierarchy, order of calling, 282
default, 127, 129, 130
and inheritance, 270–276, 281, 284–287
overloading, 190–195
static, 205, 207
using reflection to obtain a type’s, 459–463
ConstructorInfo class, 459–460
Container class, 820–821
Container property, 809, 821
Containers, 808, 820–823
Contains( ), 631, 632, 710, 711, 712, 726, 729, 735
ContainsKey( ), 721, 723, 724, 736, 746, 748, 751
ContainsValue( ), 721–722, 723, 724, 746, 748, 751
ContentEncoding property, 791
ContentLength property, 782, 783, 791
ContentType property, 782, 783, 791
continue statement, 85, 105
Contravariance, 406–408
Control class, 827, 830, 832
Control statements. See Statements, control
Controls property, 830, 842
Controls, Windows, 827, 830, 833, 844
Conversion operators, 231–235, 239
implicit vs. explicit, 231, 233, 235
Conversion, type. See Type conversion
ConvertAll<TFrom, TTo>( ), 600
ConvertFromUtf32( ), 583
ConvertToUtf32( ), 583–584
Cookie class, 793
CookieCollection, 793
CookieContainer property, 793
Cookies, accessing, 792–794
Cookies property, 791, 792–793
Copy( ), 154, 593–594, 600
CopyTo( ), 601, 710, 715, 735
Cos( ), 40, 564
Cosh( ), 564
Count property, 710, 717, 731, 735, 738, 743, 747, 749, 752
Covariance, 406–408
Create( ), 781, 785–786, 789
exceptions, 787
and the Uri class, 789
CreateInstance( ), 601
Credentials property, 782, 799
Cross-language interoperability, 5, 445
.cs file extension, 19
csc.exe command-line compiler, 14–15
CTS (Common Type System), 9
CultureInfo class, 622, 623
Current property, 737, 764, 765, 769
CurrentThread property, 702