kheylsberg a yazyk programmirovania c

784

Upload: ivan-kolovrat

Post on 04-Jan-2016

51 views

Category:

Documents


17 download

DESCRIPTION

C# программирование на пк, programming

TRANSCRIPT

  • 32.973.2-018.1 004.43 41

    ., ., ., . 41 C#. Computers Science. 4- . .: -

    , 2012. 784 .: .

    ISBN 978-5-459-00283-6 C#, -

    , C#, Delphi Turbo Pascal, , C# Microsoft. ,

    , , -

    , .

    , MSDN, C#. C# 4.0, -, ,

    . C# , .NET. - , , -

    , , , , -

    , .

    32.973.2-018.1 004.43

    Addison-Wesley Longman. . - .

    , , , . , , , .

    ISBN 978-0321741769 . Addison-Wesley,2011 ISBN 978-5-459-00283-6 , 2012 , , 2012

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

    5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

    7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

    8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

    9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

    10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589

    12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607

    13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614

    14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

    15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648

    16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657

    17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663

    18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683

    . . . . . . . . . . . . . . . . . . . . . 713

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    1.1. , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .391.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .411.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

    1.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461.6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471.6.3. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .481.6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .491.6.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501.6.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

    1.6.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521.6.6.2. . . . . . . . . . . . . . . . . . . . . .551.6.6.3. . . . . . . . . . . . . . . . . .561.6.6.4. , . . . . .571.6.6.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60

    1.6.7. . . . . . . . . . . . . . . . . . . . . . . .621.6.7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .641.6.7.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .641.6.7.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .671.6.7.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .681.6.7.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .691.6.7.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70

    1.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .711.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .731.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .751.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .771.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .791.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80

  • 7

    2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83

    2.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .852.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85

    2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .852.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .862.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .862.3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88

    2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .882.4.1. Unicode . . . . . . . . . . . . . . . . . . . . . .882.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .892.4.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .922.4.4. () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93

    2.4.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .932.4.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .932.4.4.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .952.4.4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .962.4.4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .972.4.4.6. null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

    2.4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

    2.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1022.5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1032.5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1032.5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1052.5.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1082.5.6. region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1092.5.7. line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1092.5.8. pragma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110

    2.5.8.1. pragma warning . . . . . . . . . . . . . . . . . . . . . . . . .111

    3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1133.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1143.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1153.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

    3.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1193.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1193.4.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1203.4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1203.4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1203.4.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1203.4.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120

    3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1213.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1213.5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1243.5.3. protected . . . . . . . . . . . . . . . . . . .1273.5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

  • 8

    3.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1303.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

    3.7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1363.7.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . .1373.7.1.2. . . . . . . . . . . . . . . . . . . . . . .138

    3.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1403.8.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

    3.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1443.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149

    4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

    4.1. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1514.1.1. System.ValueType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1524.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1534.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1544.1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1554.1.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1564.1.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1584.1.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1614.1.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1624.1.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1634.1.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

    4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1644.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1654.2.2. object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1664.2.3. dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1664.2.4. string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1664.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1664.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1664.2.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

    4.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1674.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1684.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170

    4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1724.4.1. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1734.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1734.4.3. . . . . . . . . . . . . . . . . . . . . . . . . .1744.4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174

    4.5. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1754.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1764.7. dynamic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177

    5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1795.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1805.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180

    5.1.2.1. . . . . . . . . . . . . . . . . . . . . . . .1805.1.2.2. . . . . . . . . . . . . . . . . . . . .181

    5.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181

  • 9

    5.1.4. -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1815.1.5. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1825.1.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1835.1.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

    5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1855.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

    5.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1875.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . .1875.3.3. . . . . . . . . . . .188

    5.3.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . .1885.3.3.2. , checked unchecked . . . . . . . . . . . . . . . . . . . .1895.3.3.3. -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1895.3.3.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1895.3.3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1905.3.3.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1905.3.3.7. while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1905.3.3.8. do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1915.3.3.9. for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1915.3.3.10. break, continue goto . . . . . . . . . . . . . . .1915.3.3.11. throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1915.3.3.12. return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1925.3.3.13. try-catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1925.3.3.14. try-fnally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1925.3.3.15. try-catch-finally. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1935.3.3.16. foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1945.3.3.17. using . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1945.3.3.18. lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1945.3.3.19. yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1945.3.3.20. . . . . . . . . . . . . . . . . .1955.3.3.21.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1955.3.3.22. . . . . . . . .1955.3.3.23. . . . . . . . . . . . . . . . . . . . . .1965.3.3.24. &&-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1965.3.3.25. ||. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1975.3.3.26. ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1985.3.3.27. ?? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1985.3.3.28. ?: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1985.3.3.29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

    5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2005.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200

    6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

    6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2026.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2026.1.2. . . . . . . . . . . . . . . . . . . . .2036.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2036.1.4. . . . . . . . . . . . . . . . . . . . . . . . .2046.1.5. null . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205

  • 10

    6.1.6. . . . . . . . . . . . . . . . . . . . . . . . . .2056.1.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2076.1.8. dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2076.1.9. . . . . . . . . . . . . . . . . . . .2086.1.10. - . . . . . . . . . . . . . . . . . . . . . . .2096.1.11. . . . . . . .2106.1.12. . . . . . . . . . . . . .210

    6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2106.2.1. . . . . . . . . . . . . . . . . . . . . . .2106.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2136.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . .2136.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . .2146.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2156.2.6. dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2166.2.7. - . . . . . . . . . . . . . . . . . . . . . . . . . .2176.2.8. . . . . . . . . . .218

    6.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2196.3.1. . . . . . . . . . . . . . . . . . . . . . . . . .2196.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . .219

    6.4. , . . . . . . . . . . . . . . . . . . . . .2206.4.1. , . . . .2206.4.2. (lifted) . . . . . . . . . . . . . . . . . . . . . . . . .2206.4.3. . . . . . . . . . .2216.4.4. . . . . . . . .2226.4.5. . . . . . . . . . .223

    6.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2256.5.1. . . .2276.5.2.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2286.5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228

    6.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232

    7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

    7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2367.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238

    7.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2397.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2407.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2407.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242

    7.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2437.3.1. . . . . . . . . . . . . . . . . . . . . . . . .2437.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2457.3.3. . . . . . . . . . . . . . . . . . . . . .2477.3.4. . . . . . . . . . . . . . . . . . . . .2477.3.5. . . . . . . . . . . . . . . . . . .2487.3.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248

    7.3.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . .2497.3.6.2. . . . . . . . . . . . . . . . . . . . . . . . . .249

    7.3.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250

  • 11

    7.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2517.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254

    7.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2547.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257

    7.5.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2587.5.1.2.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2607.5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262

    7.5.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2647.5.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2657.5.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2657.5.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2657.5.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2657.5.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2667.5.2.7. . . . . . . . . . . . . . . . . . . . . . . . .2667.5.2.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2667.5.2.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2677.5.2.10. . . . . . . . . . . . . . . . . . . . . . . . . . . .2687.5.2.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2697.5.2.12. . . . . . . . . . . . . . . .2707.5.2.13. . . . . .2717.5.2.14.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2727.5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272

    7.5.3.1. . . . . . . . . . . . . . . . . . . .2737.5.3.2. . . . . . . . . . . . . . . . . . . . . . . . .2747.5.3.3. . . . . . . . . . . . . . . . . . . . . . . .2767.5.3.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2767.5.3.5. . . . . . . . . . . . . . . . . . . . . . .2767.5.3.6. . . . . . . . . . . . . . . . . . . . . . . .277

    7.5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277

    7.5.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2787.5.5.1. . . . . . . . . . . . . . . . . . . . .280

    7.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2807.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2817.6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281

    7.6.2.1. . . . . . . . . . . . . . . . . . . . . . . . . .2837.6.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2857.6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285

    7.6.4.1. . . . . . . . . . . . . . . . .2887.6.4.2. . . . . . . . . . . . . . . . . . . . . . . . .288

    7.6.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2897.6.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2907.6.5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2947.6.5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299

    7.6.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2997.6.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3007.6.6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301

    7.6.7. this- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302

  • 12

    7.6.8. Base-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3037.6.9. . . . . . . . . . .3047.6.10. new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306

    7.6.10.1. . . . . . . . . . . . . . . . . . . . . . . . . . . .3067.6.10.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3087.6.10.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .3117.6.10.4. . . . . . . . . . . . . . . . . . . . . . . . . . .3137.6.10.5. . . . . . . . . . . . . . . . . . . . . . . . . . .3157.6.10.6. . . . . . . . . . . . . . . .317

    7.6.11. typeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3197.6.12. checked unchecked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3227.6.13. . . . . . . . . . . . . . . . . . . . . . . . . . . .3257.6.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325

    7.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3257.7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3267.7.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3267.7.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3277.7.4. . . . . . . . . . . . . . . . . . . . . . . . . . . .3277.7.5. . . . . . . . . . . .3287.7.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329

    7.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3317.8.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3317.8.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3337.8.3. . . . . . . . . . . . . . . . . . . . . . . . . . . .3347.8.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3367.8.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339

    7.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3417.10. . . . . . . . . . . . . . . . . . . . . .342

    7.10.1. . . . . . . . . . . . . . . . . .3437.10.2. . . . . . . . . . . . .3447.10.3. . . . . . . . . . . . . . . . . . . . .3467.10.4. . . . . . . . . . . . . . . . . . . . . . .3467.10.5. . . . . . . . . . . . . . . . . . . . . . . .3467.10.6. . . . . . . . . . . . . . . . . . . . . .3477.10.7. . . . . . . . . . . . . . . . . . . . . . .3497.10.8. . . . . . . . . . . . . . . . . . . . . . .3497.10.9. null . . . . . . . . . . . . . . . . . . . . . . . . . .3507.10.10. is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3507.10.11. as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351

    7.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3537.11.1. . . . . . . . . . . . . . . . .3537.11.2. . . . . . . . . . . . . . . . . . . . . . . .3547.11.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3547.11.4. . . . . . . . . . . . . . . . . . .354

    7.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3557.12.1. . . . . . . . . . . . . . . . . . . . . .3567.12.2. . . .356

    7.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3577.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3597.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361

  • 13

    7.15.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3637.15.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3647.15.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3657.15.4. . . . . . . . . . . . . . . .3667.15.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366

    7.15.5.1. . . . . . . . . . . . . . . . . . . . . . .3667.15.5.2. . . . . . . . . . . . . . . . .367

    7.15.6. . . . . . . . . . . . . . . . . . . .3707.16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

    7.16.1. . . . . . . . . . . . . . . . . . . . . . . .3727.16.2. . . . . . . . . . . . . . . . . . . . . . . . . . .373

    7.16.2.1. select GroupBy . . . . . . . . . . .3747.16.2.2. . . . . . . . . .3757.16.2.3. . . . . . . . . . . . . . . . . . . . . .3767.16.2.4. from, let, where, join orderby. . . . . . . . . . . . . . . .3767.16.2.5. select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3807.16.2.6. GroupBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3807.16.2.7. . . . . . . . . . . . . . . . . . . . . . . . . . . .380

    7.16.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3827.17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384

    7.17.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3857.17.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3887.17.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389

    7.18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3907.19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3907.20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392

    8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

    8.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3938.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396

    8.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3968.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3978.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3998.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .400

    8.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4008.5.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403

    8.6. -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4048.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405

    8.7.1. if. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4058.7.2. switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .406

    8.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4118.8.1. while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4118.8.2. do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4128.8.3. for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4138.8.4. foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414

    8.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4208.9.1. break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4218.9.2. continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4228.9.3. goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .423

  • 14

    8.9.4. return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4258.9.5. throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425

    8.10. try . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4278.11. checked unchecked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4328.12. lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4328.13. using. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4348.14. yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438

    9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

    9.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4419.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4429.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4449.4. using. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445

    9.4.1. Using- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4459.4.2. Using- . . . . . . . . . . . . . . . . . . . . . . . . . . .448

    9.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4509.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4509.7. . . . . . . . . . . . . . . . . . . . . . . .451

    9.7.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453

    10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    10.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45410.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454

    10.1.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45510.1.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45610.1.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457

    10.1.2. partial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45810.1.3. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45810.1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459

    10.1.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45910.1.4.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462

    10.1.5. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46210.1.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468

    10.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46810.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46910.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47010.2.3. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47010.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47110.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47110.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47210.2.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47310.2.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477

    10.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47810.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47910.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . .48010.3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48210.3.4. new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48310.3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48410.3.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484

  • 15

    10.3.7. . . . . . . . . . . . . . . . . .48410.3.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .486

    10.3.8.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48610.3.8.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48610.3.8.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48710.3.8.4. this- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48810.3.8.5.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48910.3.8.6. . . . . . . . . . . . . . . . . . .490

    10.3.9. . . . . . . . . . . . . . . . . . . . . . . . . .49110.3.9.1. , . . . . . . .49210.3.9.2. , . . . . . . .49310.3.9.3. , . .49310.3.9.4. , . .493

    10.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49310.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496

    10.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . .49710.5.2. , . . . . . . . . . . . . . . . . . . . . . . . . . . .498

    10.5.2.1. , , . . . . . . . . . . . . . . . . . . . . . . . . . . . .499

    10.5.2.2. , . . . . . . . . . . . . . . . . . . . . . . . . . . .500

    10.5.3. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50110.5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50310.5.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .503

    10.5.5.1. . . . . . . . . . . . . . . . . . . . . . .50410.5.5.2. . . . . . . . . . . . . . . . . . . . . . .506

    10.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50610.6.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .509

    10.6.1.1. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51110.6.1.2. -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51110.6.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51210.6.1.4. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .514

    10.6.2. . . . . . . . . . . . . . . . . . . . . .51710.6.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51710.6.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52010.6.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52310.6.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52410.6.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52610.6.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52710.6.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52710.6.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52910.6.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .530

    10.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53010.7.1. . . . . . . . . . . . . . . . . . .53110.7.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53210.7.3. . . . . . . . . . . . . . . . . . . . . . . . .53810.7.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54010.7.5. , ,

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .541

  • 16

    10.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54410.8.1. , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54610.8.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54810.8.3. . . . . . . . . . . . . . . . . . . .54910.8.4. , ,

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55010.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .551

    10.9.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55510.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555

    10.10.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55710.10.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55810.10.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559

    10.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56310.11.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56410.11.2. . . . . . . . . . . . . . . . . . . . .56510.11.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56510.11.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56810.11.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56810.11.6.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56910.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57010.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57310.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .575

    10.14.1. - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57510.14.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57610.14.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57610.14.4. -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .576

    10.14.4.1. MoveNext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57710.14.4.2. Current. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57910.14.4.3. Dispose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .579

    10.14.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57910.14.5.1. GetEnumerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .580

    10.14.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .580

    11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589

    11.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59011.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59011.1.2. partial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59111.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59111.1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .591

    11.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59111.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .592

    11.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59211.3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59411.3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59411.3.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59511.3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59511.3.6. this. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59811.3.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .598

  • 17

    11.3.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59911.3.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60011.3.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .600

    11.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60111.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . .60111.4.2. boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604

    12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607

    12.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60712.1.1. System.Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60812.1.2. IList . . . . . . . . . . . . . . . . . . . . . . .608

    12.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61012.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61012.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61012.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61012.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .612

    13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614

    13.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61413.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61513.1.2. partial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61513.1.3. . . . . . . . . . . . . . . . . . . . . . . . . .616

    13.1.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . .61613.1.3.2. . . . . . . . . . . . . . . . . . . . . . . . . .617

    13.1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61813.1.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .619

    13.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62013.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62113.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62213.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62213.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62313.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .623

    13.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62513.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .626

    13.4.1. . . . . . . . . . . . . . . . . . . . . .62813.4.2. . . . . . . . . . . . . . . . . . . . .63113.4.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .63213.4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63313.4.5. . . . . . . . . . . . . . . . . . . . . . . .63713.4.6. . . . . . . . . . . . . . . . . . . . . . . . . . . .63813.4.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . .640

    14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

    14.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64214.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64314.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64414.4. System.Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64614.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647

  • 18

    15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648

    15.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64915.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65215.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65215.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .653

    16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657

    16.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65816.2. System.Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65916.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65916.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .661

    17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663

    17.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66417.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66417.1.2. . . . . . . . . . . . . . . . . . . . . . .66617.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667

    17.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66717.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .674

    17.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67417.3.2. . . . . . . . . . .674

    17.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67517.4.1. AttributeUsage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67517.4.2. Conditional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .676

    17.4.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67617.4.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . .679

    17.4.3. Obsolete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68017.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .682

    17.5.1. COM Win32 . . . . . . . . . . . . . . . . .68217.5.2. .NET. . . . . . . . . . . . . . . . . . . . . .682

    17.5.2.1. IndexerName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .682

    18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683

    18.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68418.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68618.3. . . . . . . . . . . . . . . . . . . . . . .69018.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .690

    18.4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69218.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .693

    18.5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69418.5.2. . . . . . . . . . . . . . . . . . . . .69418.5.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .69618.5.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69618.5.5. . . . . . . . . . . . . . . . . . . . . . . . . . . .69818.5.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69818.5.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69918.5.8. sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .699

    18.6. fixed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .700

  • 19

    18.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70518.7.1. . . . . . . . . . . . . . . . . .70618.7.2.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70718.7.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .708

    18.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70918.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710

    . . . . . . . . . . . . . . . . . . . . . 713

    .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .713.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715

    .2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715A.2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .716A.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .716A.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .716A.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .717A.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .718A.2.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719A.2.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719A.2.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720A.2.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720A.2.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .721A.2.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .721A.2.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .721A.2.14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .722A.2.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .722A.2.16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .723A.2.17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .723A.2.18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .723

    A.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .724A.3.1. ID-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .724A.3.2. ID- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .725

    A.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .729A.4.1. C#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .729A.4.2. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .732

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736

    B.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .736.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .736.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .736.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .737.1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .737.1.5. Unicode . . . . . . . . . . . . . . . . . . . . .738.1.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .738.1.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .739.1.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .739.1.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .741.1.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .741

    .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .744.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .744

  • 20 20

    .2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .744.2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .746.2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .746.2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .753.2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .757.2.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .758.2.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .765.2.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .766.2.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .766.2.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .767.2.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768.2.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768

    .3. . . . . . . . . . . . . . . . . . . . . .770

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773

  • .NET 2000 . .NET XML-. , , C#.

    .NET C# , .NET . .NET , : , , System.ValueType. ? , API , , , .

    - . C# , .NET. , , .NET , ( ), , , C#, -. , C# .NET, C# 3.0, - , -, . C# 4.0, , , - (Common Language Runtime, CLR).

    C# , - , . , C# 3.0, - , . , , , - .

    -. C# 3.0. . Java: Lisp; C++. Lisp. C# 3.0, , C# (). C# 4.0 Lisp ( JavaScript, Python, Ruby . .),

  • , .

    C#, , - (BNF), , C#. , , . , , .NET, , - , .

    !

    , , 2010

    22

  • C# 12 , 1998 - , , - .NET, . C# . . , .

    , . C#. - , . , , C# 4.0, , , . - C# , .NET. LINQ - , , , C# 4.0 C# , Python, Ruby JavaScript.

    C#. , - , , . , - C#.

    C# . C# 1.0 (Anders Hejlsberg), (Scott Wiltamuth), (Peter Golde), (Peter Golde) (Eric Gunnerson). C# 2.0: , , (Peter Hallam), (Shon Katzenberger), (Todd Proebsting) (Anson Horton).

    , C# .NET Gyro, (Don Syme) (Andrew Kennedy) Microsoft Research. C# 3.0: , (Erik Meijer), (Matt Warren), (Mads Torgersen), (Dinesh Kulkarni). C# 4.0 -, , , (Eric Lippert), ( Jim Hugunin), (Lucian Wischik) (Neal Gafter).

  • , C#, . ; , , .

    C# - , . , C#, , - .

    , , 2010

    24

  • . C# Microsoft Technical Fellow1. Microsoft 1996 Borland, Delphi Turbo Pascal. C# - Microsoft; . Visual Studio Team Professional Microsoft. , OLE Automation, Visual Basic, Visual Basic for Applications, VBScript, JScript, Visual J++ Visual C#. C# Microsoft. - Microsoft - (European Computer Manufactures Association, ECMA), C#, . Microsoft.

    1 Microsoft, , . . . .

  • (Brad Abrams) (CRL), , - .NET Framework Microsoft, WCF WF. .NET Framework 1998 , , - (Base Class Library, BCL) .NET. 1997 - . : Framework Design Guidelines, Second Edition (Addison-Wesley, 2009) .NET Framework Standard Library Annotated Reference (Volumes 1 and 2) (Addison-Wesley, 2006).

    ( Joseph Albahari) C# 4.0 in a Nutshell (OReilly, 2007), C# 3.0 Pocket Reference(OReilly, 2008) LINQ Pocket Reference (OReilly, 2008). - -, . LINQPad, LINQ.

    (Krzysztof Cwalina) - .NET Framework Microsoft. (Application Program Interface, API) . , - .NET Framework. FrameworkDesign Guidelines (Addison-Wesley, 2005). http://blogs.msdn.com/kcwalina.

    (Jesse Liberty) ( Silverlight Geek) Microsoft, . . http://JesseLiberty.com WPF, Windows Phone 7 Silverlight. - , - Citi AT&T. @JesseLiberty.

    (Eric Lippert) , C# Microsoft. , Visual Basic, VBScript, JScript, C#, Visual Studio Tools For Office. http://blogs.msdn.com/EricLippert.

    (Christian Nagel) Microsoft MVP. , Professional C# 4 with .NET 4 (Wrox, 2010) Enterprise Services with the.NET Framework (Addison-Wes-

  • 27

    ley, 2005). CN innovation thinktecture, - Microsoft .NET. http://www.cninnovation.com.

    (Vladimir Reshetnikov) Microsoft MVP Visual C#. Microsoft .NET C#. http://nikov-thoughts.blogspot.com.

    (Marek Safar) - Novell C#. - Mono C#. http://mareksafar.blogspot.com.

    (Chris Sells) Business Platform ( SQL Server) Microsoft. , Programming WPF (OReilly, 2007), Windows Forms 2.0 Programming (Addison-Wesley, 2006) ATL Internals (Addison-Wesley, 1999). - Microsoft. http://www.sellsbrothers.com.

    (Peter Sestoft) - , , . C# (Europian Computer Manufacturers As-sociation, ECMA) c 2003 2006 . C# Precisely (MIT Press, 2004) Java Precisely (MIT Press, 2005). http://www.itu.dk/people/sestoft.

    ( Jon Skeet) C# in Depth (Manning, 2010) C# MVP. Google, C#. http://msmvps.com/jon.skeet - Stack Overfow (http://stackoverfow.com).

    (Bill Wagner) SRT Solutions, Microsoft C# MVP. . Effective C# (Ad-dison-Wesley, 2005) More Effective C# (Addison-Wesley, 2009). -, C#, Visual Studio Magazine C# (C# Developer Center) Microsoft Developer Network (MSDN). C# http://srtsolutions.com/blogs/billwagner.

    , ,

    [email protected] ( , ). ! - http://www.piter.com -

    .

  • 1

    C# ( ) , , -, . C# C C, C++ Java. (European Computer Manufacturers Association, ECMA) ECMA-334, (International Standards Organization, ISO) (International Electrotechnical Commission, IEC) ISO/IEC 23270. Microsoft C# .NET Framework - .

    - , C# - . - - , . , , , , , - , . C# , , - .

    C#, : , -; ; , , , .

    C# . , C#, , int double, object. , ; - , . , C# -, - .

    , - C# ,

  • 29

    C#. . , , , . C#, , virtual override, - .

    C#. - , , . , - .

    , C# , - - , . - , C# 2.0, LINQ 3.0 C# 4.0, , , .

    C# -. , , - , - , - .

    C# - : , - , . , C# 3.0 , , , C# 1.0.

    C# , C# 3.0 - , , (mutability). , (immutability) , , (-) .

  • 30 1.

    C#. - C# . , . C# , .

    1.1. , , . C# :using System;class Hello{ static void Main() { Console.WriteLine(", !"); }}

    C# .cs. -, hello.cs, Microsoft C# :csc hello.cs hello.exe. , !

    , using, - System. C#. , System , Console, - , , IO Collections. - using, , , , . using Console.WriteLine System.Console.WriteLine.

    Hello, , , - Main. Main static. , this, - . Main .

    WriteLine Console System. .NET Framework,

  • 1.2. 31

    Microsoft C#. , C# , .NET Framework , C# - .

    , Console.WriteLine() Console.Out.WriteLine. Console.Out , System.IO.TextWriter, . :using System;class Hello{ static void Main() { Console.Out.WriteLine(Hello, World); }}

    , C# . Console, -, . , . Console.Out.WriteLine().

    1.2. C# , , , . C# . , . - . , , . C# . .exe .dll, , .

    :using System;namespace Acme.Collections { public class Stack { Entry top; public void Push(object data) { top = new Entry(top, data); } public object Pop() {

  • 32 1.

    if (top == null) throw new InvalidOperationException(); object result = top.data; top = top.next; return result; } class Entry { public Entry next; public object data; public Entry(Entry next, object data) { this.next = next; this.data = data; } } } }

    Stack Acme.Collections. Acme.Collections.Stack. : top, Push Pop, , - Entry. Entry, , : next, data . , acme.cs. csc /t:library acme.cs

    ( Main) , acme.dll.

    (Intermediate Language, IL) . IL- , - , JIT- ( Just-In-Time1) - (CLR).

    , - ( ), C# #include . , C#, - . , Acme.Collections.Stack acme.dll:using System;using Acme.Collections;

    class Test{ static void Main() { Stack s = new Stack(); s.Push(1); s.Push(10); s.Push(100);

    1 , , . . .

  • 1.3. 33

    Console.WriteLine(s.Pop()); Console.WriteLine(s.Pop()); Console.WriteLine(s.Pop()); }}

    test.cs, acme.dll /r:csc /r:acme.dll test.cs

    test.exe, 100101

    C# . C#, , - , . C# , , , . C# , , .

    Java. , C# -, C# C++.

    , using Acme.Collections, #include C, . , Stack, - , . , :Acme.Collections.Stack s = new Acme.Collections.Stack();

    1.3. C# : - . - , () . , , , , , . - , ( - ref out).

  • 34 1.

    , (reference) - . ( ) . - , , C#: , .

    , - , , - . -, , . -, - . -, : , , , , -, , , - . -, - , , CLR, . , - , ; , .

    C#, . , , ( C++). .

    C# , . , , .

    - C# , , . , , -. C# .

  • 1.3. 35

    -

    : sbyte, short, int, long : byte, ushort, uint, ulong Unicode: char IEEE: oat, double : decimal : bool

    enum E {...}

    struct S {...}

    - null

    object Unicode: string class C {...}

    interface I {...}

    ; int[] int[,]

    , delegate int D(...)

    8-, 16-, 32- 64- .1

    Byte , ! , Java byte ( - ), , . , uint, -: , int, . , , : String.Length?

    , 1 , CLS. CLS - , CLS- : CLS .

    1 .NET Framework. . .

  • 36 1.

    , oat double, - 32- 64- IEEE 754.

    decimal 128- -.

    , decimal . , oat double .

    bool C# true false.

    Unicode. char UTF-16, string - UTF-16.

    C#.

    / 8 sbyte 128127

    16 short 32 72832 76732 int 2 147 483 6482 147 483 64764 long 9 223 372 036 854 775 808

    9 223 372 036854 775 807

    8 byte 025516 ushort 065 53532 uint 04 294 967 29564 ulong 018 446 744 073 709 551 615

    32 oat 1.51045 3.41038, 7 64 double 5.010324 7.910308, 15 -

    128 decimal 1.01028 7.91028, 28

    C++ , , short, int long. - short

  • 1.3. 37

    , () - (, .). - , , , .

    , , -.

    , - -. , , - . - , , - object.

    object . System.ValueType, , , object.

    (public) . , , - , . , .

    - . , . , , , , - .

    : , , - .

    , . - , . .

    -. , . , C# .

  • 38 1.

    C# . , , . . -, int[] , int, int[,] , int, int[][] , int.

    . - T T?, null. , int? , 32- null.

    T? Nullable.

    C# 1.0 -. C# 2.0 -. . , , , - . , , . - ; . (code contracts) , ; , . , Spec#, Microsoft C#, .

    C# , - . C# object, object . object. - . int object int.using System;class Test{ static void Main() { int i = 123; object o = i; // int j = (int)o; // }}

  • 1.4. 39

    - object, - , (box), - . , object -, , -, , .

    C# , - - . , object, , -.

    C# : , , . , , , , .

    -

    - object ,

    , ,

    , , , - -,

    ,

    1.4. . - , . : +, -, *, / new. : , , - .

    , , - , . , x + y * z x + (y * z), * +.

    . , .

  • 40 1.

    , , , - . , . - x, y, z, - , . x , y, x y; - , , .

    C#. - . .

    x.m x() x [] x++ x-- new T(...) new T(...){...} new {...} new T[...] typeof(T) System.Type T checked(x)

    unchecked(x)

    default(T) Tdelegate {...} ( )

    +x -x !x ~x () ++x --x (T)x x T

    x * y x / y x % y

    x + y , ,

    x y , x > y

  • 1.5. 41

    x < y x > y x = y x is T true, x T,

    falsex as T T

    null, x T x == y

    x != y AND x & y AND,

    AND XOR x ^ y XOR,

    XOR OR x | y OR,

    OR AND x && y y x true OR x || y y x false x ?? y y, x null, x -

    x ? y : z y x true, z x false

    -

    x = y x op= y ;

    : *= /= %= += -= = &= ^= |=

    (T x) => y (-)

    , - . . , - . , , , .

    1.5. . C# - , .

    , - . , - { }.

  • 42 1.

    .

    - . , : , new, () , =, , - ++ --.

    . - if switch.

    - . while, do, for foreach.

    . break, continue, goto, throw, return yield.

    try...catch -, , try... nally , , , .

    ; , nally . try , fail fast ( ), nally - .

    checked unchecked - .

    lock , , , -.

    using , , .

    C# -.

    -

    static void Main() { int a; int b = 2, c = 3; a = 1; Console.WriteLine(a + b + c);}

  • 1.5. 43

    -

    static void Main() { const oat pi = 3.1415927f; const int r = 25; Console.WriteLine(pi * r * r);}

    -

    static void Main() { int i; i = 123; // - Console.WriteLine(i); // - i++; // - Console.WriteLine(i); // -}

    if static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine(" "); } else { Console.WriteLine(" "); }}

    switch static void Main(string[] args) { int n = args.Length; switch (n) { case 0: Console.WriteLine(" "); break; case 1: Console.WriteLine(" "); break; default: Console.WriteLine("{0} ", n); break; } }}

    while static void Main(string[] args) { int i = 0; while (i < args.Length) { Console.WriteLine(args[i]); i++; }}

    do static void Main() { string s; do { s = Console.ReadLine(); if (s != null) Console.WriteLine(s); } while (s != null);}

    for static void Main(string[] args) { for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); }}

  • 44 1.

    foreach static void Main(string[] args) {

    foreach (string s in args) { Console.WriteLine(s); }}

    break static void Main() { while (true) { string s = Console.ReadLine(); if (s == null) break; Console.WriteLine(s); }}

    continue static void Main(string[] args) { for (int i = 0; i < args.Length; i++) { if (args[i].StartsWith("/")) continue; Console.WriteLine(args[i]); }}

    return static int Add(int a, int b) {return a + b;

    static void Main() {Console.WriteLine(Add(1, 2));return;}

    yield static IEnumerable Range(int from, int to) { for (int i = from; i < to; i++) { yield return i; } yield break;}static void Main() { foreach (int x in Range(-10,10)) { Console.WriteLine(x); }}

    throw try

    static double Divide(double x, double y) { if (y == 0) throw new DivideByZeroException(); return x / y;}static void Main(string[] args) { try { if (args.Length != 2) { throw new Exception(" 2 "); } double x = double.Parse(args[0]); double y = double.Parse(args[1]); Console.WriteLine(Divide(x, y)); } catch (Exception e) { Console.WriteLine(e.Message); }

  • 1.6. 45

    nally {Console.WriteLine(" !"); }}

    checked unchecked

    static void Main() { int i = int.MaxValue; checked { Console.WriteLine(i + 1); // } unchecked { Console.WriteLine(i + 1); // }}

    lock class Account{ decimal balance; public void Withdraw(decimal amount) { lock (this) { if (amount > balance) { throw new Exception(" "); } balance -= amount; } }}

    using static void Main() { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine(" "); w.WriteLine(" "); w.WriteLine(" "); }}

    1.6.

    C#. - , () ( ). , . - , , .

    . , , , ( ) , . , - , { }.

  • 46 1.

    Point:public class Point{ public int x, y; public Point(int x, int y) { this.x = x; this.y = y; }}

    new, - , . Point :Point p1 = new Point(0, 0);Point p2 = new Point(10, 20);

    , , , - . - C# , .

    1.6.1. , . , ( ).

    - , , , .

    , ( , Visual Basic) . , - , - . , , --------- ( ).

    .

    ,

    ,

  • 1.6. 47

    ,

    ,

    ,

    ,

    ,

    , ,

    ,

    1.6.2. , , . - .

    public protected internal protected internal ,

    private

    public. C# , public C++! C++ -. C# , extern C++ ( ). !

    internal , . DLL, EXE-, DLL, .

    protected internal . , , protected internal , . , ,

  • 48 1.

    . , , private .

    C# protected internal, , - . proternal intected, , .

    C# protected internal , . CLR , . C++/CLI - CLR public private ( private public ). .

    1.6.3. - -. - , -. - . - Pair TFirst TSecond.public class Pair{ public TFirst First; public TSecond Second;}

    , -, (, ) . , .

    , -, - , CLR.

    , -:Pair pair = new Pair { First = 1, Second = "two" };int i = pair.First; // TFirst - string s = pair.Second; // TSecond string

  • 1.6. 49

    , Pair .

    1.6.4. . . , object. Point3D Point, Point object:public class Point{ public int x, y; public Point(int x, int y) { this.x = x; this.y = y; }}public class Point3D : Point{ public int z; public Point3D(int x, int y, int z): base(x, y) { this.z = z; }}

    . , - , -, . , , . Point3D Point x y, Point3D x, y z.

    C#, . - - -. , , , C#.

    . , . , , , Point Point Point3D:Point a = new Point(10, 20);Point b = new Point3D(10, 20, 30);

  • 50 1.

    1.6.5. , .

    , static, . . , - , .

    . class Stack {public readonly static Stack empty = whatever; ...}

    Stack.empty , Stack.empty.

    , static, . .

    Color r, g, b, Black, White, Red, Green Blue:public class Color{ public static readonly Color Black = new Color(0, 0, 0); public static readonly Color White = new Color(255, 255, 255); public static readonly Color Red = new Color(255, 0, 0); public static readonly Color Green = new Color(0, 255, 0); public static readonly Color Blue = new Color(0, 0, 255);

    private byte r, g, b;

    public Color(byte r, byte g, byte b) { this.r = r; this.g = g; this.b = b; }

    , - readonly. readonly - .

    readonly , - , . , :public class Names{ public static readonly StringBuilder FirstBorn = new StringBuilder("Joe");

  • 1.6. 51

    public static readonly StringBuilder SecondBorn = new StringBuilder("Sue");}

    FirstBorn ( ) :Names.FirstBorn = new StringBuilder("Biff"); //

    , StringBuilder:Names.FirstBorn.Remove(0,6).Append("Biff");Console.WriteLine(Names.FirstBorn); // "Biff"

    , - . , int, double String.

    . Adapter, Decorator, Fasade Proxy. , , , . , - .

    1.6.6. , , . . .

    ( ), , , , - . , void.

    , -, . - .

    , -. , -, , . .

    , - .

  • 52 1.

    , class C { void M(T t){} void M(int t){} ...} , C M . , - . : , - ; .

    1.6.6.1.

    , . , . : -, -, -.

    - . - , , . - , .

    , - , , . - , , .

    - , .

    - , . , -, -, - , . - ref. ref.using System;class Test{ static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } static void Main() { int i = 1, j = 2; Swap(ref i, ref j); Console.WriteLine("{0} {1}", i, j); // "2 1" }}

  • 1.6. 53

    , , - . C#, ; , . . . , . - ( -), . , -, . , , . x i .

    . -, , , , . out. out.using System;class Test{ static void Divide(int x, int y, out int result, out int remainder) { result = x / y; remainder = x % y; } static void Main() { int res, rem; Divide(10, 3, out res, out rem); Console.WriteLine("{0} {1}", res, rem); // "3 1" }}

    CLR ref. out - ref, , C#, ref out. , , out ref: .

    - . params. -, . - Write WriteLine System.Console. :

  • 54 1.

    public class Console{ public static void Write(string fmt, params object[] args) {...} public static void WriteLine(string fmt, params object[] args) {...} ...}

    , -, . - -, -. - . :Console.WriteLine("x={0} y={1} z={2}", x, y, z); :string s = "x={0} y={1} z={2}";object[] args = new object[3];args[0] = x;args[1] = y;args[2] = z;Console.WriteLine(s, args);

    params varargs C-. C# , params . , varargs., , C# - -. , , , - , params . StringBuilder.AppendFormat():public StringBuilder AppendFormat(string format, object arg0);public StringBuilder AppendFormat(string format, object arg0, object arg1);public StringBuilder AppendFormat(string format, object arg0, object arg1, object arg2);public StringBuilder AppendFormat(string format, params object[] args);

    , params - , , :static object[] GetArgs() { ... }static void Main() { object[] args = GetArgs(); object x = args[0]; object y = args[1];

  • 1.6. 55

    object z = args[2]; Console.WriteLine("x={0} y={1} z={2}", x, y, z);}

    , , . , :static object[] GetArgs() { ... }

    static void Main() { Console.WriteLine("x={0} y={1} z={2}", GetArgs());}

    .NET , , IEnumerable - . , :static IEnumerable GetArgs() { ... }static void Main() {Console.WriteLine("x={0} y={1} z={2}", GetArgs().ToArray());}

    , params IEnumerable . , .

    1.6.6.2.

    , . ,

    . . - , , , . i , j .using System;class Squares{ static void Main() { int i = 0; int j; while (i < 10) { j = i * i; Console.WriteLine("{0} x {0} = {1}", i, j); i = i + 1; } }}

    C# , -. , i , i, i .

  • 56 1.

    return, - . , void, return - . , - , return , .

    1.6.6.3.

    , static, . - .

    , - .

    , static, . , . , , this. this .

    Entity, , .class Entity{ static int nextSerialNo; int serialNo; public Entity() { serialNo = nextSerialNo++; } public int GetSerialNo() { return serialNo; } public static int GetNextSerialNo() { return nextSerialNo; } public static void SetNextSerialNo(int value) { nextSerialNo = value; }}

    Entity (, , , ). Entity ( - ) . , - serialNo nextSerialNo.

  • 1.6. 57

    GetNextSerialNo SetNextSerialNo nextSerialNo, serialNo .

    Entity:using System;class Test{ static void Main() { Entity.SetNextSerialNo(1000); Entity e1 = new Entity(); Entity e2 = new Entity(); Console.WriteLine(e1.GetSerialNo()); // "1000" Console.WriteLine(e2.GetSerialNo()); // "1001" Console.WriteLine(Entity.GetNextSeria