{"id":1091,"date":"2018-07-07T14:48:53","date_gmt":"2018-07-07T06:48:53","guid":{"rendered":"http:\/\/170.106.148.50\/?p=1091"},"modified":"2018-07-05T13:00:21","modified_gmt":"2018-07-05T05:00:21","slug":"c-%e5%9f%ba%e7%a1%80%e9%80%9f%e6%88%90","status":"publish","type":"post","link":"https:\/\/www.195440.com\/1091","title":{"rendered":"C# \u57fa\u7840\u901f\u6210"},"content":{"rendered":"

\u7b80\u4ecb<\/h3>\n

C# \u662f\u4e00\u4e2a\u73b0\u4ee3\u7684\u3001\u901a\u7528\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3002<\/p>\n

C# \u662f\u4e13\u4e3a\u516c\u5171\u8bed\u8a00\u57fa\u7840\u7ed3\u6784\uff08CLI\uff09\u8bbe\u8ba1\u7684\u3002CLI \u7531\u53ef\u6267\u884c\u4ee3\u7801\u548c\u8fd0\u884c\u65f6\u73af\u5883\u7ec4\u6210\uff0c\u5141\u8bb8\u5728\u4e0d\u540c\u7684\u8ba1\u7b97\u673a\u5e73\u53f0\u548c\u4f53\u7cfb\u7ed3\u6784\u4e0a\u4f7f\u7528\u5404\u79cd\u9ad8\u7ea7\u8bed\u8a00\u3002<\/p>\n

\u4e0b\u9762\u5217\u51fa\u4e86 C# \u6210\u4e3a\u4e00\u79cd\u5e7f\u6cdb\u5e94\u7528\u7684\u4e13\u4e1a\u8bed\u8a00\u7684\u539f\u56e0\uff1a<\/p>\n

\n
  • \u73b0\u4ee3\u7684\u3001\u901a\u7528\u7684\u7f16\u7a0b\u8bed\u8a00\u3002<\/li>\n
  • \u9762\u5411\u5bf9\u8c61\u3002<\/li>\n
  • \u9762\u5411\u7ec4\u4ef6\u3002<\/li>\n
  • \u5bb9\u6613\u5b66\u4e60\u3002<\/li>\n
  • \u7ed3\u6784\u5316\u8bed\u8a00\u3002<\/li>\n
  • \u5b83\u4ea7\u751f\u9ad8\u6548\u7387\u7684\u7a0b\u5e8f\u3002<\/li>\n
  • \u5b83\u53ef\u4ee5\u5728\u591a\u79cd\u8ba1\u7b97\u673a\u5e73\u53f0\u4e0a\u7f16\u8bd1\u3002<\/li>\n
  • .Net \u6846\u67b6\u7684\u4e00\u90e8\u5206\u3002<\/li>\n<\/ul>\n

    \u901f\u6210\u793a\u4f8b<\/h3>\n
    \/\/ \u5355\u884c\u6ce8\u91ca\u4ee5 \/\/ \u5f00\u59cb<\/span>\r\n\/*<\/span>\r\n\u591a\u884c\u6ce8\u91ca\u662f\u8fd9\u6837\u7684<\/span>\r\n*\/<\/span>\r\n\/\/\/ <summary><\/span>\r\n\/\/\/ XML\u6587\u6863\u6ce8\u91ca<\/span>\r\n\/\/\/ <\/summary><\/span>\r\n\r\n\/\/ \u58f0\u660e\u5e94\u7528\u7528\u5230\u7684\u547d\u540d\u7a7a\u95f4<\/span>\r\nusing<\/span> System<\/span>;<\/span>\r\nusing<\/span> System.Collections.Generic<\/span>;<\/span>\r\nusing<\/span> System.Data.Entity<\/span>;<\/span>\r\nusing<\/span> System.Dynamic<\/span>;<\/span>\r\nusing<\/span> System.Linq<\/span>;<\/span>\r\nusing<\/span> System.Linq.Expressions<\/span>;<\/span>\r\nusing<\/span> System.Net<\/span>;<\/span>\r\nusing<\/span> System.Threading.Tasks<\/span>;<\/span>\r\nusing<\/span> System.IO<\/span>;<\/span>\r\n\r\n\/\/ \u5b9a\u4e49\u4f5c\u7528\u57df\uff0c\u5c06\u4ee3\u7801\u7ec4\u7ec7\u6210\u5305<\/span>\r\nnamespace<\/span> Learning<\/span>\r\n{<\/span>\r\n    \/\/ \u6bcf\u4e2a .cs \u6587\u4ef6\u81f3\u5c11\u9700\u8981\u5305\u542b\u4e00\u4e2a\u548c\u6587\u4ef6\u540d\u76f8\u540c\u7684\u7c7b<\/span>\r\n    \/\/ \u4f60\u53ef\u4ee5\u4e0d\u8fd9\u4e48\u5e72\uff0c\u4f46\u662f\u8fd9\u6837\u4e0d\u597d\u3002<\/span>\r\n    public<\/span> class<\/span> LearnCSharp<\/span>\r\n    {<\/span>\r\n        \/\/ \u57fa\u672c\u8bed\u6cd5 -  \u5982\u679c\u4f60\u4ee5\u524d\u7528\u8fc7 Java \u6216 C++ \u7684\u8bdd\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u5230\u540e\u6587\u300c\u6709\u8da3\u7684\u7279\u6027\u300d<\/span>\r\n        public<\/span> static<\/span> void<\/span> Syntax<\/span>()<\/span> \r\n        {<\/span>\r\n            \/\/ \u4f7f\u7528 Console.WriteLine \u6253\u5370\u4fe1\u606f<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"Hello World\"<\/span>);<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\r\n                \"Integer: \"<\/span> +<\/span> 10<\/span> +<\/span>\r\n                \" Double: \"<\/span> +<\/span> 3.14<\/span> +<\/span>\r\n                \" Boolean: \"<\/span> +<\/span> true<\/span>);<\/span>\r\n\r\n            \/\/ \u4f7f\u7528 Console.Write \u6253\u5370\uff0c\u4e0d\u5e26\u6362\u884c\u7b26\u53f7<\/span>\r\n            Console<\/span>.<\/span>Write<\/span>(<\/span>\"Hello \"<\/span>);<\/span>\r\n            Console<\/span>.<\/span>Write<\/span>(<\/span>\"World\"<\/span>);<\/span>\r\n\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            \/\/ \u7c7b\u578b\u548c\u53d8\u91cf<\/span>\r\n            \/\/<\/span>\r\n            \/\/ \u4f7f\u7528 <type> <name> \u5b9a\u4e49\u53d8\u91cf<\/span>\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\r\n            \/\/ Sbyte - \u6709\u7b26\u53f7 8-bit \u6574\u6570<\/span>\r\n            \/\/ (-128 <= sbyte <= 127)<\/span>\r\n            sbyte<\/span> fooSbyte<\/span> =<\/span> 100<\/span>;<\/span>\r\n\r\n            \/\/ Byte - \u65e0\u7b26\u53f7 8-bit \u6574\u6570<\/span>\r\n            \/\/ (0 <= byte <= 255)<\/span>\r\n            byte<\/span> fooByte<\/span> =<\/span> 100<\/span>;<\/span>\r\n\r\n            \/\/ Short - 16-bit \u6574\u6570<\/span>\r\n            \/\/ \u6709\u7b26\u53f7 - (-32,768 <= short <= 32,767)<\/span>\r\n            \/\/ \u65e0\u7b26\u53f7 - (0 <= ushort <= 65,535)<\/span>\r\n            short<\/span> fooShort<\/span> =<\/span> 10000<\/span>;<\/span>\r\n            ushort<\/span> fooUshort<\/span> =<\/span> 10000<\/span>;<\/span>\r\n\r\n            \/\/ Integer - 32-bit \u6574\u6570<\/span>\r\n            int<\/span> fooInt<\/span> =<\/span> 1<\/span>;<\/span> \/\/ (-2,147,483,648 <= int <= 2,147,483,647)<\/span>\r\n            uint<\/span> fooUint<\/span> =<\/span> 1<\/span>;<\/span> \/\/ (0 <= uint <= 4,294,967,295)<\/span>\r\n\r\n            \/\/ Long - 64-bit \u6574\u6570<\/span>\r\n            long<\/span> fooLong<\/span> =<\/span> 100000L<\/span>;<\/span> \/\/ (-9,223,372,036,854,775,808 <= long <= 9,223,372,036,854,775,807)<\/span>\r\n            ulong<\/span> fooUlong<\/span> =<\/span> 100000L<\/span>;<\/span> \/\/ (0 <= ulong <= 18,446,744,073,709,551,615)<\/span>\r\n            \/\/ \u6570\u5b57\u9ed8\u8ba4\u4e3a int \u6216 uint \uff08\u53d6\u51b3\u4e8e\u5c3a\u5bf8\uff09<\/span>\r\n            \/\/ \u4f7f\u7528 L \u6807\u660e\u53d8\u91cf\u503c\u7c7b\u578b\u4e3along \u6216 ulong<\/span>\r\n\r\n            \/\/ Double - \u53cc\u7cbe\u5ea6 64-bit IEEE 754 \u6d6e\u70b9\u6570<\/span>\r\n            double<\/span> fooDouble<\/span> =<\/span> 123.4<\/span>;<\/span> \/\/ \u7cbe\u5ea6: 15-16 \u4f4d<\/span>\r\n\r\n            \/\/ Float - \u5355\u7cbe\u5ea6 32-bit IEEE 754 \u6d6e\u70b9\u6570<\/span>\r\n            float<\/span> fooFloat<\/span> =<\/span> 234.5f<\/span>;<\/span> \/\/ \u7cbe\u5ea6: 7 \u4f4d<\/span>\r\n            \/\/ \u4f7f\u7528 f \u6807\u660e\u53d8\u91cf\u503c\u7c7b\u578b\u4e3afloat<\/span>\r\n\r\n            \/\/ Decimal - 128-bits \u6570\u636e\u7c7b\u578b\uff0c\u6bd4\u5176\u4ed6\u6d6e\u70b9\u7c7b\u578b\u7cbe\u5ea6\u66f4\u9ad8<\/span>\r\n            \/\/ \u9002\u5408\u8d22\u52a1\u3001\u91d1\u878d<\/span>\r\n            decimal<\/span> fooDecimal<\/span> =<\/span> 150.3<\/span>m<\/span>;<\/span>\r\n\r\n            \/\/ \u5e03\u5c14\u503c - true & false<\/span>\r\n            bool<\/span> fooBoolean<\/span> =<\/span> true<\/span>;<\/span> \/\/ \u6216 false<\/span>\r\n\r\n            \/\/ Char - \u5355\u4e2a 16-bit Unicode \u5b57\u7b26<\/span>\r\n            char<\/span> fooChar<\/span> =<\/span> 'A'<\/span>;<\/span>\r\n\r\n            \/\/ \u5b57\u7b26\u4e32 -- \u548c\u524d\u9762\u7684\u57fa\u672c\u7c7b\u578b\u4e0d\u540c\uff0c\u5b57\u7b26\u4e32\u4e0d\u662f\u503c\uff0c\u800c\u662f\u5f15\u7528\u3002<\/span>\r\n            \/\/ \u8fd9\u610f\u5473\u7740\u4f60\u53ef\u4ee5\u5c06\u5b57\u7b26\u4e32\u8bbe\u4e3anull\u3002<\/span>\r\n            string<\/span> fooString<\/span> =<\/span> \"\\\"escape\\\" quotes and add \\n (new lines) and \\t (tabs)\"<\/span>;<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>fooString<\/span>);<\/span>\r\n\r\n            \/\/ \u4f60\u53ef\u4ee5\u901a\u8fc7\u7d22\u5f15\u8bbf\u95ee\u5b57\u7b26\u4e32\u7684\u6bcf\u4e2a\u5b57\u7b26\uff1a<\/span>\r\n            char<\/span> charFromString<\/span> =<\/span> fooString<\/span>[<\/span>1<\/span>];<\/span> \/\/ => 'e'<\/span>\r\n            \/\/ \u5b57\u7b26\u4e32\u4e0d\u53ef\u4fee\u6539:  fooString[1] = 'X' \u662f\u884c\u4e0d\u901a\u7684;<\/span>\r\n\r\n            \/\/ \u6839\u636e\u5f53\u524d\u7684locale\u8bbe\u5b9a\u6bd4\u8f83\u5b57\u7b26\u4e32\uff0c\u5927\u5c0f\u5199\u4e0d\u654f\u611f<\/span>\r\n            string<\/span>.<\/span>Compare<\/span>(<\/span>fooString<\/span>,<\/span> \"x\"<\/span>,<\/span> StringComparison<\/span>.<\/span>CurrentCultureIgnoreCase<\/span>);<\/span>\r\n\r\n            \/\/ \u57fa\u4e8esprintf\u7684\u5b57\u7b26\u4e32\u683c\u5f0f\u5316<\/span>\r\n            string<\/span> fooFs<\/span> =<\/span> string<\/span>.<\/span>Format<\/span>(<\/span>\"Check Check, {0} {1}, {0} {1:0.0}\"<\/span>,<\/span> 1<\/span>,<\/span> 2<\/span>);<\/span>\r\n\r\n            \/\/ \u65e5\u671f\u548c\u683c\u5f0f<\/span>\r\n            DateTime<\/span> fooDate<\/span> =<\/span> DateTime<\/span>.<\/span>Now<\/span>;<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>fooDate<\/span>.<\/span>ToString<\/span>(<\/span>\"hh:mm, dd MMM yyyy\"<\/span>));<\/span>\r\n\r\n            \/\/ \u4f7f\u7528 @  \u7b26\u53f7\u53ef\u4ee5\u521b\u5efa\u8de8\u884c\u7684\u5b57\u7b26\u4e32\u3002\u4f7f\u7528 \"\" \u6765\u8868\u793a \"<\/span>\r\n            string<\/span> bazString<\/span> =<\/span> @\"Here's some stuff<\/span>\r\non a new line! \"\"Wow!\"\", the masses cried\"<\/span>;<\/span>\r\n\r\n            \/\/ \u4f7f\u7528const\u6216read-only\u5b9a\u4e49\u5e38\u91cf<\/span>\r\n            \/\/ \u5e38\u91cf\u5728\u7f16\u8bd1\u671f\u6f14\u7b97<\/span>\r\n            const<\/span> int<\/span> HOURS_I_WORK_PER_WEEK<\/span> =<\/span> 9001<\/span>;<\/span>\r\n\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            \/\/ \u6570\u636e\u7ed3\u6784<\/span>\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\r\n            \/\/ \u6570\u7ec4 - \u4ece0\u5f00\u59cb\u8ba1\u6570<\/span>\r\n            \/\/ \u58f0\u660e\u6570\u7ec4\u65f6\u9700\u8981\u786e\u5b9a\u6570\u7ec4\u957f\u5ea6<\/span>\r\n            \/\/ \u58f0\u660e\u6570\u7ec4\u7684\u683c\u5f0f\u5982\u4e0b\uff1a<\/span>\r\n            \/\/ <datatype>[] <var name> = new <datatype>[<array size>];<\/span>\r\n            int<\/span>[]<\/span> intArray<\/span> =<\/span> new<\/span> int<\/span>[<\/span>10<\/span>];<\/span>\r\n\r\n            \/\/ \u58f0\u660e\u5e76\u521d\u59cb\u5316\u6570\u7ec4\u7684\u5176\u4ed6\u65b9\u5f0f\uff1a<\/span>\r\n            int<\/span>[]<\/span> y<\/span> =<\/span> {<\/span> 9000<\/span>,<\/span> 1000<\/span>,<\/span> 1337<\/span> };<\/span>\r\n\r\n            \/\/ \u8bbf\u95ee\u6570\u7ec4\u7684\u5143\u7d20<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"intArray @ 0: \"<\/span> +<\/span> intArray<\/span>[<\/span>0<\/span>]);<\/span>\r\n            \/\/ \u6570\u7ec4\u53ef\u4ee5\u4fee\u6539<\/span>\r\n            intArray<\/span>[<\/span>1<\/span>]<\/span> =<\/span> 1<\/span>;<\/span>\r\n\r\n            \/\/ \u5217\u8868<\/span>\r\n            \/\/ \u5217\u8868\u6bd4\u6570\u7ec4\u66f4\u5e38\u7528\uff0c\u56e0\u4e3a\u5217\u8868\u66f4\u7075\u6d3b\u3002<\/span>\r\n            \/\/ \u58f0\u660e\u5217\u8868\u7684\u683c\u5f0f\u5982\u4e0b\uff1a<\/span>\r\n            \/\/ List<datatype> <var name> = new List<datatype>();<\/span>\r\n            List<\/span><<\/span>int<\/span>><\/span> intList<\/span> =<\/span> new<\/span> List<\/span><<\/span>int<\/span>>();<\/span>\r\n            List<\/span><<\/span>string<\/span>><\/span> stringList<\/span> =<\/span> new<\/span> List<\/span><<\/span>string<\/span>>();<\/span>\r\n            List<\/span><<\/span>int<\/span>><\/span> z<\/span> =<\/span> new<\/span> List<\/span><<\/span>int<\/span>><\/span> {<\/span> 9000<\/span>,<\/span> 1000<\/span>,<\/span> 1337<\/span> };<\/span> \/\/ i<\/span>\r\n            \/\/ <>\u7528\u4e8e\u6cdb\u578b - \u53c2\u8003\u4e0b\u6587<\/span>\r\n\r\n            \/\/ \u5217\u8868\u65e0\u9ed8\u8ba4\u503c<\/span>\r\n            \/\/ \u8bbf\u95ee\u5217\u8868\u5143\u7d20\u65f6\u5fc5\u987b\u9996\u5148\u6dfb\u52a0\u5143\u7d20<\/span>\r\n            intList<\/span>.<\/span>Add<\/span>(<\/span>1<\/span>);<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"intList @ 0: \"<\/span> +<\/span> intList<\/span>[<\/span>0<\/span>]);<\/span>\r\n\r\n            \/\/ \u5176\u4ed6\u6570\u636e\u7ed3\u6784\uff1a<\/span>\r\n            \/\/ \u5806\u6808\/\u961f\u5217<\/span>\r\n            \/\/ \u5b57\u5178 (\u54c8\u5e0c\u8868\u7684\u5b9e\u73b0)<\/span>\r\n            \/\/ \u54c8\u5e0c\u96c6\u5408<\/span>\r\n            \/\/ \u53ea\u8bfb\u96c6\u5408<\/span>\r\n            \/\/ \u5143\u7ec4 (.Net 4+)<\/span>\r\n\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            \/\/ \u64cd\u4f5c\u7b26<\/span>\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"\\n->Operators\"<\/span>);<\/span>\r\n\r\n            int<\/span> i1<\/span> =<\/span> 1<\/span>,<\/span> i2<\/span> =<\/span> 2<\/span>;<\/span> \/\/ \u591a\u91cd\u58f0\u660e\u7684\u7b80\u5199\u5f62\u5f0f<\/span>\r\n\r\n            \/\/ \u7b97\u672f\u76f4\u622a\u4e86\u5f53<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>i1<\/span> +<\/span> i2<\/span> -<\/span> i1<\/span> *<\/span> 3<\/span> \/<\/span> 7<\/span>);<\/span> \/\/ => 3<\/span>\r\n\r\n            \/\/ \u53d6\u4f59<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"11%3 = \"<\/span> +<\/span> (<\/span>11<\/span> %<\/span> 3<\/span>));<\/span> \/\/ => 2<\/span>\r\n\r\n            \/\/ \u6bd4\u8f83\u64cd\u4f5c\u7b26<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"3 == 2? \"<\/span> +<\/span> (<\/span>3<\/span> ==<\/span> 2<\/span>));<\/span> \/\/ => false<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"3 != 2? \"<\/span> +<\/span> (<\/span>3<\/span> !=<\/span> 2<\/span>));<\/span> \/\/ => true<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"3 > 2? \"<\/span> +<\/span> (<\/span>3<\/span> ><\/span> 2<\/span>));<\/span> \/\/ => true<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"3 < 2? \"<\/span> +<\/span> (<\/span>3<\/span> <<\/span> 2<\/span>));<\/span> \/\/ => false<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"2 <= 2? \"<\/span> +<\/span> (<\/span>2<\/span> <=<\/span> 2<\/span>));<\/span> \/\/ => true<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"2 >= 2? \"<\/span> +<\/span> (<\/span>2<\/span> >=<\/span> 2<\/span>));<\/span> \/\/ => true<\/span>\r\n\r\n            \/\/ \u4f4d\u64cd\u4f5c\u7b26<\/span>\r\n            \/*<\/span>\r\n            ~       \u53d6\u53cd<\/span>\r\n            <<      \u5de6\u79fb\uff08\u6709\u7b26\u53f7\uff09<\/span>\r\n            >>      \u53f3\u79fb\uff08\u6709\u7b26\u53f7\uff09<\/span>\r\n            &       \u4e0e<\/span>\r\n            ^       \u5f02\u6216<\/span>\r\n            |       \u6216<\/span>\r\n            *\/<\/span>\r\n\r\n            \/\/ \u81ea\u589e\u3001\u81ea\u51cf<\/span>\r\n            int<\/span> i<\/span> =<\/span> 0<\/span>;<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"\\n->Inc\/Dec-rementation\"<\/span>);<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>i<\/span>++);<\/span> \/\/i = 1. \u4e8b\u540e\u81ea\u589e<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(++<\/span>i<\/span>);<\/span> \/\/i = 2. \u4e8b\u5148\u81ea\u589e<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>i<\/span>--);<\/span> \/\/i = 1. \u4e8b\u540e\u81ea\u51cf<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(--<\/span>i<\/span>);<\/span> \/\/i = 0. \u4e8b\u5148\u81ea\u51cf<\/span>\r\n\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            \/\/ \u63a7\u5236\u7ed3\u6784<\/span>\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"\\n->Control Structures\"<\/span>);<\/span>\r\n\r\n            \/\/ \u7c7b\u4f3cC\u7684if\u8bed\u53e5<\/span>\r\n            int<\/span> j<\/span> =<\/span> 10<\/span>;<\/span>\r\n            if<\/span> (<\/span>j<\/span> ==<\/span> 10<\/span>)<\/span>\r\n            {<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"I get printed\"<\/span>);<\/span>\r\n            }<\/span>\r\n            else<\/span> if<\/span> (<\/span>j<\/span> ><\/span> 10<\/span>)<\/span>\r\n            {<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"I don't\"<\/span>);<\/span>\r\n            }<\/span>\r\n            else<\/span>\r\n            {<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"I also don't\"<\/span>);<\/span>\r\n            }<\/span>\r\n\r\n            \/\/ \u4e09\u5143\u8868\u8fbe\u5f0f<\/span>\r\n            \/\/ \u7b80\u5355\u7684 if\/else \u8bed\u53e5\u53ef\u4ee5\u5199\u6210\uff1a<\/span>\r\n            \/\/ <\u6761\u4ef6> ? <\u771f> : <\u5047><\/span>\r\n            int<\/span> toCompare<\/span> =<\/span> 17<\/span>;<\/span>\r\n            string<\/span> isTrue<\/span> =<\/span> toCompare<\/span> ==<\/span> 17<\/span> ?<\/span> \"True\"<\/span> :<\/span> \"False\"<\/span>;<\/span>\r\n\r\n            \/\/ While \u5faa\u73af<\/span>\r\n            int<\/span> fooWhile<\/span> =<\/span> 0<\/span>;<\/span>\r\n            while<\/span> (<\/span>fooWhile<\/span> <<\/span> 100<\/span>)<\/span>\r\n            {<\/span>\r\n                \/\/\u8fed\u4ee3 100 \u6b21, fooWhile 0->99<\/span>\r\n                fooWhile<\/span>++;<\/span>\r\n            }<\/span>\r\n\r\n            \/\/ Do While \u5faa\u73af<\/span>\r\n            int<\/span> fooDoWhile<\/span> =<\/span> 0<\/span>;<\/span>\r\n            do<\/span>\r\n            {<\/span>\r\n                \/\/\u8fed\u4ee3 100 \u6b21, fooDoWhile 0->99<\/span>\r\n                fooDoWhile<\/span>++;<\/span>\r\n            }<\/span> while<\/span> (<\/span>fooDoWhile<\/span> <<\/span> 100<\/span>);<\/span>\r\n\r\n            \/\/for \u5faa\u73af\u7ed3\u6784 => for(<\u521d\u59cb\u6761\u4ef6>; <\u6761\u4ef6>; <\u6b65>)<\/span>\r\n            for<\/span> (<\/span>int<\/span> fooFor<\/span> =<\/span> 0<\/span>;<\/span> fooFor<\/span> <<\/span> 10<\/span>;<\/span> fooFor<\/span>++)<\/span>\r\n            {<\/span>\r\n                \/\/\u8fed\u4ee310\u6b21, fooFor 0->9<\/span>\r\n            }<\/span>\r\n\r\n            \/\/ foreach\u5faa\u73af<\/span>\r\n            \/\/ foreach \u5faa\u73af\u7ed3\u6784 => foreach(<\u8fed\u4ee3\u5668\u7c7b\u578b> <\u8fed\u4ee3\u5668> in <\u53ef\u679a\u4e3e\u7ed3\u6784>)<\/span>\r\n            \/\/ foreach \u5faa\u73af\u9002\u7528\u4e8e\u4efb\u4f55\u5b9e\u73b0\u4e86 IEnumerable \u6216 IEnumerable<T> \u7684\u5bf9\u8c61\u3002<\/span>\r\n            \/\/ .Net \u6846\u67b6\u4e0b\u7684\u96c6\u5408\u7c7b\u578b(\u6570\u7ec4, \u5217\u8868, \u5b57\u5178...)<\/span>\r\n            \/\/ \u90fd\u5b9e\u73b0\u4e86\u8fd9\u4e9b\u63a5\u53e3<\/span>\r\n            \/\/ (\u4e0b\u9762\u7684\u4ee3\u7801\u4e2d\uff0cToCharArray()\u53ef\u4ee5\u5220\u9664\uff0c\u56e0\u4e3a\u5b57\u7b26\u4e32\u540c\u6837\u5b9e\u73b0\u4e86IEnumerable)<\/span>\r\n            foreach<\/span> (<\/span>char<\/span> character<\/span> in<\/span> \"Hello World\"<\/span>.<\/span>ToCharArray<\/span>())<\/span>\r\n            {<\/span>\r\n                \/\/\u8fed\u4ee3\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26<\/span>\r\n            }<\/span>\r\n\r\n            \/\/ Switch \u8bed\u53e5<\/span>\r\n            \/\/ switch \u9002\u7528\u4e8e byte\u3001short\u3001char\u548cint \u6570\u636e\u7c7b\u578b\u3002<\/span>\r\n            \/\/ \u540c\u6837\u9002\u7528\u4e8e\u53ef\u679a\u4e3e\u7684\u7c7b\u578b<\/span>\r\n            \/\/ \u5305\u62ec\u5b57\u7b26\u4e32\u7c7b, \u4ee5\u53ca\u4e00\u4e9b\u5c01\u88c5\u4e86\u539f\u59cb\u503c\u7684\u7c7b\uff1a<\/span>\r\n            \/\/ Character\u3001Byte\u3001Short\u548cInteger\u3002<\/span>\r\n            int<\/span> month<\/span> =<\/span> 3<\/span>;<\/span>\r\n            string<\/span> monthString<\/span>;<\/span>\r\n            switch<\/span> (<\/span>month<\/span>)<\/span>\r\n            {<\/span>\r\n                case<\/span> 1<\/span>:<\/span>\r\n                    monthString<\/span> =<\/span> \"January\"<\/span>;<\/span>\r\n                    break<\/span>;<\/span>\r\n                case<\/span> 2<\/span>:<\/span>\r\n                    monthString<\/span> =<\/span> \"February\"<\/span>;<\/span>\r\n                    break<\/span>;<\/span>\r\n                case<\/span> 3<\/span>:<\/span>\r\n                    monthString<\/span> =<\/span> \"March\"<\/span>;<\/span>\r\n                    break<\/span>;<\/span>\r\n                \/\/ \u4f60\u53ef\u4ee5\u4e00\u6b21\u5339\u914d\u591a\u4e2acase\u8bed\u53e5<\/span>\r\n                \/\/ \u4f46\u662f\u4f60\u5728\u6dfb\u52a0case\u8bed\u53e5\u540e\u9700\u8981\u4f7f\u7528break<\/span>\r\n                \/\/ \uff08\u5426\u5219\u4f60\u9700\u8981\u663e\u5f0f\u5730\u4f7f\u7528goto case x\u8bed\u53e5\uff09<\/span>\r\n                case<\/span> 6<\/span>:<\/span>\r\n                case<\/span> 7<\/span>:<\/span>\r\n                case<\/span> 8<\/span>:<\/span>\r\n                    monthString<\/span> =<\/span> \"Summer time!!\"<\/span>;<\/span>\r\n                    break<\/span>;<\/span>\r\n                default<\/span>:<\/span>\r\n                    monthString<\/span> =<\/span> \"Some other month\"<\/span>;<\/span>\r\n                    break<\/span>;<\/span>\r\n            }<\/span>\r\n\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n            \/\/ \u8f6c\u6362\u3001\u6307\u5b9a\u6570\u636e\u7c7b\u578b<\/span>\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n\r\n            \/\/ \u8f6c\u6362\u7c7b\u578b<\/span>\r\n\r\n            \/\/ \u8f6c\u6362\u5b57\u7b26\u4e32\u4e3a\u6574\u6570<\/span>\r\n            \/\/ \u8f6c\u6362\u5931\u8d25\u4f1a\u629b\u51fa\u5f02\u5e38<\/span>\r\n            int<\/span>.<\/span>Parse<\/span>(<\/span>\"123\"<\/span>);<\/span>\/\/\u8fd4\u56de\u6574\u6570\u7c7b\u578b\u7684\"123\"<\/span>\r\n\r\n            \/\/ TryParse\u4f1a\u5c1d\u8bd5\u8f6c\u6362\u7c7b\u578b\uff0c\u5931\u8d25\u65f6\u4f1a\u8fd4\u56de\u7f3a\u7701\u7c7b\u578b<\/span>\r\n            \/\/ \u4f8b\u5982 0<\/span>\r\n            int<\/span> tryInt<\/span>;<\/span>\r\n            if<\/span> (<\/span>int<\/span>.<\/span>TryParse<\/span>(<\/span>\"123\"<\/span>,<\/span> out<\/span> tryInt<\/span>))<\/span> \/\/ Funciton is boolean<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>tryInt<\/span>);<\/span>       \/\/ 123<\/span>\r\n\r\n            \/\/ \u8f6c\u6362\u6574\u6570\u4e3a\u5b57\u7b26\u4e32<\/span>\r\n            \/\/ Convert\u7c7b\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u4fbf\u5229\u8f6c\u6362\u7684\u65b9\u6cd5<\/span>\r\n            Convert<\/span>.<\/span>ToString<\/span>(<\/span>123<\/span>);<\/span>\r\n            \/\/ or<\/span>\r\n            tryInt<\/span>.<\/span>ToString<\/span>();<\/span>\r\n        }<\/span>\r\n\r\n        \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n        \/\/ \u7c7b<\/span>\r\n        \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n        public<\/span> static<\/span> void<\/span> Classes<\/span>()<\/span>\r\n        {<\/span>\r\n            \/\/ \u53c2\u770b\u6587\u4ef6\u5c3e\u90e8\u7684\u5bf9\u8c61\u58f0\u660e<\/span>\r\n\r\n            \/\/ \u4f7f\u7528new\u521d\u59cb\u5316\u5bf9\u8c61<\/span>\r\n            Bicycle<\/span> trek<\/span> =<\/span> new<\/span> Bicycle<\/span>();<\/span>\r\n\r\n            \/\/ \u8c03\u7528\u5bf9\u8c61\u7684\u65b9\u6cd5<\/span>\r\n            trek<\/span>.<\/span>SpeedUp<\/span>(<\/span>3<\/span>);<\/span> \/\/ \u4f60\u5e94\u8be5\u4e00\u76f4\u4f7f\u7528setter\u548cgetter\u65b9\u6cd5<\/span>\r\n            trek<\/span>.<\/span>Cadence<\/span> =<\/span> 100<\/span>;<\/span>\r\n\r\n            \/\/ \u67e5\u770b\u5bf9\u8c61\u7684\u4fe1\u606f.<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"trek info: \"<\/span> +<\/span> trek<\/span>.<\/span>Info<\/span>());<\/span>\r\n\r\n            \/\/ \u5b9e\u4f8b\u5316\u4e00\u4e2a\u65b0\u7684Penny Farthing<\/span>\r\n            PennyFarthing<\/span> funbike<\/span> =<\/span> new<\/span> PennyFarthing<\/span>(<\/span>1<\/span>,<\/span> 10<\/span>);<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"funbike info: \"<\/span> +<\/span> funbike<\/span>.<\/span>Info<\/span>());<\/span>\r\n\r\n            Console<\/span>.<\/span>Read<\/span>();<\/span>\r\n        }<\/span> \/\/ \u7ed3\u675fmain\u65b9\u6cd5<\/span>\r\n\r\n        \/\/ \u7ec8\u7aef\u7a0b\u5e8f \u7ec8\u7aef\u7a0b\u5e8f\u5fc5\u987b\u6709\u4e00\u4e2amain\u65b9\u6cd5\u4f5c\u4e3a\u5165\u53e3<\/span>\r\n        public<\/span> static<\/span> void<\/span> Main<\/span>(<\/span>string<\/span>[]<\/span> args<\/span>)<\/span>\r\n        {<\/span>\r\n            OtherInterestingFeatures<\/span>();<\/span>\r\n        }<\/span>\r\n\r\n        \/\/<\/span>\r\n        \/\/ \u6709\u8da3\u7684\u7279\u6027<\/span>\r\n        \/\/<\/span>\r\n\r\n        \/\/ \u9ed8\u8ba4\u65b9\u6cd5\u7b7e\u540d<\/span>\r\n\r\n        public<\/span> \/\/ \u53ef\u89c1\u6027<\/span>\r\n        static<\/span> \/\/ \u5141\u8bb8\u76f4\u63a5\u8c03\u7528\u7c7b\uff0c\u65e0\u9700\u5148\u521b\u5efa\u5b9e\u4f8b<\/span>\r\n        int<\/span>,<\/span> \/\/\u8fd4\u56de\u503c<\/span>\r\n        MethodSignatures<\/span>(<\/span>\r\n            int<\/span> maxCount<\/span>,<\/span> \/\/ \u7b2c\u4e00\u4e2a\u53d8\u91cf\uff0c\u7c7b\u578b\u4e3a\u6574\u578b<\/span>\r\n            int<\/span> count<\/span> =<\/span> 0<\/span>,<\/span> \/\/ \u5982\u679c\u6ca1\u6709\u4f20\u5165\u503c\uff0c\u5219\u7f3a\u7701\u503c\u4e3a0<\/span>\r\n            int<\/span> another<\/span> =<\/span> 3<\/span>,<\/span>\r\n            params<\/span> string<\/span>[]<\/span> otherParams<\/span> \/\/ \u6355\u83b7\u5176\u4ed6\u53c2\u6570<\/span>\r\n        )<\/span>\r\n        {<\/span> \r\n            return<\/span> -<\/span>1<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u65b9\u6cd5\u53ef\u4ee5\u91cd\u540d\uff0c\u53ea\u8981\u7b7e\u540d\u4e0d\u4e00\u6837<\/span>\r\n        public<\/span> static<\/span> void<\/span> MethodSignature<\/span>(<\/span>string<\/span> maxCount<\/span>)<\/span>\r\n        {<\/span>\r\n        }<\/span>\r\n\r\n        \/\/\u6cdb\u578b<\/span>\r\n        \/\/ TKey\u548cTValue\u7c7b\u7531\u7528\u7528\u6237\u8c03\u7528\u51fd\u6570\u65f6\u6307\u5b9a\u3002<\/span>\r\n        \/\/ \u4ee5\u4e0b\u51fd\u6570\u6a21\u62df\u4e86Python\u7684SetDefault<\/span>\r\n        public<\/span> static<\/span> TValue<\/span> SetDefault<\/span><<\/span>TKey<\/span>,<\/span> TValue<\/span>>(<\/span>\r\n            IDictionary<\/span><<\/span>TKey<\/span>,<\/span> TValue<\/span>><\/span> dictionary<\/span>,<\/span> \r\n            TKey<\/span> key<\/span>,<\/span> \r\n            TValue<\/span> defaultItem<\/span>)<\/span>\r\n        {<\/span>\r\n            TValue<\/span> result<\/span>;<\/span>\r\n            if<\/span> (!<\/span>dictionary<\/span>.<\/span>TryGetValue<\/span>(<\/span>key<\/span>,<\/span> out<\/span> result<\/span>))<\/span>\r\n                return<\/span> dictionary<\/span>[<\/span>key<\/span>]<\/span> =<\/span> defaultItem<\/span>;<\/span>\r\n            return<\/span> result<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u4f60\u53ef\u4ee5\u9650\u5b9a\u4f20\u5165\u503c\u7684\u8303\u56f4<\/span>\r\n        public<\/span> static<\/span> void<\/span> IterateAndPrint<\/span><<\/span>T<\/span>>(<\/span>T<\/span> toPrint<\/span>)<\/span> where<\/span> T<\/span>:<\/span> IEnumerable<\/span><<\/span>int<\/span>><\/span>\r\n        {<\/span>\r\n            \/\/ \u6211\u4eec\u53ef\u4ee5\u8fdb\u884c\u8fed\u4ee3\uff0c\u56e0\u4e3aT\u662f\u53ef\u679a\u4e3e\u7684<\/span>\r\n            foreach<\/span> (<\/span>var<\/span> item<\/span> in<\/span> toPrint<\/span>)<\/span>\r\n                \/\/ ittm\u4e3a\u6574\u6570<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>item<\/span>.<\/span>ToString<\/span>());<\/span>\r\n        }<\/span>\r\n\r\n        public<\/span> static<\/span> void<\/span> OtherInterestingFeatures<\/span>()<\/span>\r\n        {<\/span>\r\n            \/\/ \u53ef\u9009\u53c2\u6570  <\/span>\r\n            MethodSignatures<\/span>(<\/span>3<\/span>,<\/span> 1<\/span>,<\/span> 3<\/span>,<\/span> \"Some\"<\/span>,<\/span> \"Extra\"<\/span>,<\/span> \"Strings\"<\/span>);<\/span>\r\n            MethodSignatures<\/span>(<\/span>3<\/span>,<\/span> another<\/span>:<\/span> 3<\/span>);<\/span> \/\/ \u663e\u5f0f\u6307\u5b9a\u53c2\u6570\uff0c\u5ffd\u7565\u53ef\u9009\u53c2\u6570<\/span>\r\n\r\n            \/\/ \u6269\u5c55\u65b9\u6cd5<\/span>\r\n            int<\/span> i<\/span> =<\/span> 3<\/span>;<\/span>\r\n            i<\/span>.<\/span>Print<\/span>();<\/span> \/\/ \u53c2\u89c1\u4e0b\u9762\u7684\u5b9a\u4e49 <\/span>\r\n\r\n            \/\/ \u53ef\u4e3anull\u7684\u7c7b\u578b \u5bf9\u6570\u636e\u5e93\u4ea4\u4e92\u3001\u8fd4\u56de\u503c\u5f88\u6709\u7528<\/span>\r\n            \/\/ \u4efb\u4f55\u503c\u7c7b\u578b (i.e. \u4e0d\u4e3a\u7c7b) \u6dfb\u52a0\u540e\u7f00 ? \u540e\u4f1a\u53d8\u4e3a\u53ef\u4e3anull\u7684\u503c<\/span>\r\n            \/\/ <\u7c7b\u578b>? <\u53d8\u91cf\u540d> = <\u503c><\/span>\r\n            int?<\/span> nullable<\/span> =<\/span> null<\/span>;<\/span> \/\/ Nullable<int> \u7684\u7b80\u5199\u5f62\u5f0f<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"Nullable variable: \"<\/span> +<\/span> nullable<\/span>);<\/span>\r\n            bool<\/span> hasValue<\/span> =<\/span> nullable<\/span>.<\/span>HasValue<\/span>;<\/span> \/\/ \u4e0d\u4e3anull\u65f6\u8fd4\u56de\u771f<\/span>\r\n            \/\/ ?? \u662f\u7528\u4e8e\u6307\u5b9a\u9ed8\u8ba4\u503c\u7684\u8bed\u6cd5\u7cd6<\/span>\r\n            \/\/ \u4ee5\u9632\u53d8\u91cf\u4e3anull\u7684\u60c5\u51b5<\/span>\r\n            int<\/span> notNullable<\/span> =<\/span> nullable<\/span> ??<\/span> 0<\/span>;<\/span> \/\/ 0<\/span>\r\n\r\n            \/\/ \u53d8\u91cf\u7c7b\u578b\u63a8\u65ad - \u4f60\u53ef\u4ee5\u8ba9\u7f16\u8bd1\u5668\u63a8\u65ad\u53d8\u91cf\u7c7b\u578b:<\/span>\r\n            var<\/span> magic<\/span> =<\/span> \"\u7f16\u8bd1\u5668\u786e\u5b9amagic\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u6240\u4ee5\u4ecd\u7136\u662f\u7c7b\u578b\u5b89\u5168\u7684\"<\/span>;<\/span>\r\n            \/\/ magic = 9; \/\/ \u4e0d\u5de5\u4f5c\uff0c\u56e0\u4e3amagic\u662f\u5b57\u7b26\u4e32\uff0c\u800c\u4e0d\u662f\u6574\u6570\u3002 <\/span>\r\n\r\n            \/\/ \u6cdb\u578b<\/span>\r\n            \/\/<\/span>\r\n            var<\/span> phonebook<\/span> =<\/span> new<\/span> Dictionary<\/span><<\/span>string<\/span>,<\/span> string<\/span>>()<\/span> {<\/span> \r\n                {<\/span>\"Sarah\"<\/span>,<\/span> \"212 555 5555\"<\/span>}<\/span> \/\/ \u5728\u7535\u8bdd\u7c3f\u4e2d\u52a0\u5165\u65b0\u6761\u76ee<\/span>\r\n            };<\/span>\r\n\r\n            \/\/ \u8c03\u7528\u4e0a\u9762\u5b9a\u4e49\u4e3a\u6cdb\u578b\u7684SETDEFAULT<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>SetDefault<\/span><<\/span>string<\/span>,<\/span>string<\/span>>(<\/span>phonebook<\/span>,<\/span> \"Shaun\"<\/span>,<\/span> \"No Phone\"<\/span>));<\/span> \/\/ \u6ca1\u6709\u7535\u8bdd<\/span>\r\n            \/\/ \u4f60\u4e0d\u7528\u6307\u5b9aTKey\u3001TValue\uff0c\u56e0\u4e3a\u5b83\u4eec\u4f1a\u88ab\u9690\u5f0f\u5730\u63a8\u5bfc\u51fa\u6765<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>SetDefault<\/span>(<\/span>phonebook<\/span>,<\/span> \"Sarah\"<\/span>,<\/span> \"No Phone\"<\/span>));<\/span> \/\/ 212 555 5555<\/span>\r\n\r\n            \/\/ lambda\u8868\u8fbe\u5f0f - \u5141\u8bb8\u4f60\u7528\u4e00\u884c\u4ee3\u7801\u641e\u5b9a\u51fd\u6570<\/span>\r\n            Func<\/span><<\/span>int<\/span>,<\/span> int<\/span>><\/span> square<\/span> =<\/span> (<\/span>x<\/span>)<\/span> =><\/span> x<\/span> *<\/span> x<\/span>;<\/span> \/\/ \u6700\u540e\u4e00\u9879\u4e3a\u8fd4\u56de\u503c<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>square<\/span>(<\/span>3<\/span>));<\/span> \/\/ 9<\/span>\r\n\r\n            \/\/ \u53ef\u629b\u5f03\u7684\u8d44\u6e90\u7ba1\u7406 - \u8ba9\u4f60\u5f88\u5bb9\u6613\u5730\u5904\u7406\u672a\u7ba1\u7406\u7684\u8d44\u6e90<\/span>\r\n            \/\/ \u5927\u591a\u6570\u8bbf\u95ee\u672a\u7ba1\u7406\u8d44\u6e90 (\u6587\u4ef6\u64cd\u4f5c\u7b26\u3001\u8bbe\u5907\u4e0a\u4e0b\u6587, etc.)\u7684\u5bf9\u8c61<\/span>\r\n            \/\/ \u90fd\u5b9e\u73b0\u4e86IDisposable\u63a5\u53e3\u3002 <\/span>\r\n            \/\/ using\u8bed\u53e5\u4f1a\u4e3a\u4f60\u6e05\u7406IDisposable\u5bf9\u8c61\u3002<\/span>\r\n            using<\/span> (<\/span>StreamWriter<\/span> writer<\/span> =<\/span> new<\/span> StreamWriter<\/span>(<\/span>\"log.txt\"<\/span>))<\/span>\r\n            {<\/span>\r\n                writer<\/span>.<\/span>WriteLine<\/span>(<\/span>\"\u8fd9\u91cc\u6ca1\u6709\u4ec0\u4e48\u53ef\u7591\u7684\u4e1c\u897f\"<\/span>);<\/span>\r\n                \/\/ \u5728\u4f5c\u7528\u57df\u7684\u7ed3\u5c3e\uff0c\u8d44\u6e90\u4f1a\u88ab\u56de\u6536<\/span>\r\n                \/\/ \uff08\u5373\u4f7f\u6709\u5f02\u5e38\u629b\u51fa\uff0c\u4e5f\u4e00\u6837\u4f1a\u56de\u6536\uff09<\/span>\r\n            }<\/span> \r\n\r\n            \/\/ \u5e76\u884c\u6846\u67b6<\/span>\r\n            \/\/ http:\/\/blogs.msdn.com\/b\/csharpfaq\/archive\/2010\/06\/01\/parallel-programming-in-net-framework-4-getting-started.aspx<\/span>\r\n            var<\/span> websites<\/span> =<\/span> new<\/span> string<\/span>[]<\/span> {<\/span> \r\n                \"http:\/\/www.google.com\"<\/span>,<\/span> \"http:\/\/www.reddit.com\"<\/span>,<\/span> \r\n                \"http:\/\/www.shaunmccarthy.com\"<\/span>\r\n            };<\/span>\r\n            var<\/span> responses<\/span> =<\/span> new<\/span> Dictionary<\/span><<\/span>string<\/span>,<\/span> string<\/span>>();<\/span>\r\n\r\n            \/\/ \u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u65b0\u5f00\u4e00\u4e2a\u7ebf\u7a0b<\/span>\r\n            \/\/ \u5728\u8fd0\u884c\u4e0b\u4e00\u6b65\u524d\u5408\u5e76\u7ed3\u679c<\/span>\r\n            Parallel<\/span>.<\/span>ForEach<\/span>(<\/span>websites<\/span>,<\/span> \r\n                new<\/span> ParallelOptions<\/span>()<\/span> {<\/span>MaxDegreeOfParallelism<\/span> =<\/span> 3<\/span>},<\/span> \/\/ max of 3 threads<\/span>\r\n                website<\/span> =><\/span>\r\n            {<\/span>\r\n                \/\/ Do something that takes a long time on the file<\/span>\r\n                using<\/span> (<\/span>var<\/span> r<\/span> =<\/span> WebRequest<\/span>.<\/span>Create<\/span>(<\/span>new<\/span> Uri<\/span>(<\/span>website<\/span>)).<\/span>GetResponse<\/span>())<\/span>\r\n                {<\/span>\r\n                    responses<\/span>[<\/span>website<\/span>]<\/span> =<\/span> r<\/span>.<\/span>ContentType<\/span>;<\/span>\r\n                }<\/span>\r\n            });<\/span>\r\n\r\n            \/\/ \u76f4\u5230\u6240\u6709\u7684\u8bf7\u6c42\u5b8c\u6210\u540e\u624d\u4f1a\u8fd0\u884c\u4e0b\u9762\u7684\u4ee3\u7801<\/span>\r\n            foreach<\/span> (<\/span>var<\/span> key<\/span> in<\/span> responses<\/span>.<\/span>Keys<\/span>)<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>\"{0}:{1}\"<\/span>,<\/span> key<\/span>,<\/span> responses<\/span>[<\/span>key<\/span>]);<\/span>\r\n\r\n            \/\/ \u52a8\u6001\u5bf9\u8c61\uff08\u914d\u5408\u5176\u4ed6\u8bed\u8a00\u4f7f\u7528\u5f88\u65b9\u4fbf\uff09<\/span>\r\n            dynamic<\/span> student<\/span> =<\/span> new<\/span> ExpandoObject<\/span>();<\/span>\r\n            student<\/span>.<\/span>FirstName<\/span> =<\/span> \"First Name\"<\/span>;<\/span> \/\/ \u4e0d\u9700\u8981\u5148\u5b9a\u4e49\u7c7b\uff01<\/span>\r\n\r\n            \/\/ \u4f60\u751a\u81f3\u53ef\u4ee5\u6dfb\u52a0\u65b9\u6cd5\uff08\u63a5\u53d7\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u8f93\u51fa\u4e00\u4e2a\u5b57\u7b26\u4e32\uff09<\/span>\r\n            student<\/span>.<\/span>Introduce<\/span> =<\/span> new<\/span> Func<\/span><<\/span>string<\/span>,<\/span> string<\/span>>(<\/span>\r\n                (<\/span>introduceTo<\/span>)<\/span> =><\/span> string<\/span>.<\/span>Format<\/span>(<\/span>\"Hey {0}, this is {1}\"<\/span>,<\/span> student<\/span>.<\/span>FirstName<\/span>,<\/span> introduceTo<\/span>));<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>student<\/span>.<\/span>Introduce<\/span>(<\/span>\"Beth\"<\/span>));<\/span>\r\n\r\n            \/\/ IQUERYABLE<T> - \u51e0\u4e4e\u6240\u6709\u7684\u96c6\u5408\u90fd\u5b9e\u73b0\u4e86\u5b83\uff0c<\/span>\r\n            \/\/ \u5e26\u7ed9\u4f60 Map \/ Filter \/ Reduce \u98ce\u683c\u7684\u65b9\u6cd5<\/span>\r\n            var<\/span> bikes<\/span> =<\/span> new<\/span> List<\/span><<\/span>Bicycle<\/span>>();<\/span>\r\n            bikes<\/span>.<\/span>Sort<\/span>();<\/span> \/\/ Sorts the array<\/span>\r\n            bikes<\/span>.<\/span>Sort<\/span>((<\/span>b1<\/span>,<\/span> b2<\/span>)<\/span> =><\/span> b1<\/span>.<\/span>Wheels<\/span>.<\/span>CompareTo<\/span>(<\/span>b2<\/span>.<\/span>Wheels<\/span>));<\/span> \/\/ \u6839\u636e\u8f66\u8f6e\u6570\u6392\u5e8f<\/span>\r\n            var<\/span> result<\/span> =<\/span> bikes<\/span>\r\n                .<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Wheels<\/span> ><\/span> 3<\/span>)<\/span> \/\/ \u7b5b\u9009 - \u53ef\u4ee5\u8fde\u9501\u4f7f\u7528 \uff08\u8fd4\u56deIQueryable)<\/span>\r\n                .<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>IsBroken<\/span> &&<\/span> b<\/span>.<\/span>HasTassles<\/span>)<\/span>\r\n                .<\/span>Select<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>ToString<\/span>());<\/span> \/\/ Map - \u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u4e86select\uff0c\u6240\u4ee5\u7ed3\u679c\u662fIQueryable<string><\/span>\r\n\r\n            var<\/span> sum<\/span> =<\/span> bikes<\/span>.<\/span>Sum<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Wheels<\/span>);<\/span> \/\/ Reduce - \u8ba1\u7b97\u96c6\u5408\u4e2d\u7684\u8f6e\u5b50\u603b\u6570<\/span>\r\n\r\n            \/\/ \u521b\u5efa\u4e00\u4e2a\u5305\u542b\u57fa\u4e8e\u81ea\u884c\u8f66\u7684\u4e00\u4e9b\u53c2\u6570\u751f\u6210\u7684\u9690\u5f0f\u5bf9\u8c61\u7684\u5217\u8868<\/span>\r\n            var<\/span> bikeSummaries<\/span> =<\/span> bikes<\/span>.<\/span>Select<\/span>(<\/span>b<\/span>=><\/span>new<\/span> {<\/span> Name<\/span> =<\/span> b<\/span>.<\/span>Name<\/span>,<\/span> IsAwesome<\/span> =<\/span> !<\/span>b<\/span>.<\/span>IsBroken<\/span> &&<\/span> b<\/span>.<\/span>HasTassles<\/span> });<\/span>\r\n            \/\/ \u5f88\u96be\u6f14\u793a\uff0c\u4f46\u662f\u7f16\u8bd1\u5668\u5728\u4ee3\u7801\u7f16\u8bd1\u5b8c\u6210\u524d\u5c31\u80fd\u63a8\u5bfc\u51fa\u4ee5\u4e0a\u5bf9\u8c61\u7684\u7c7b\u578b<\/span>\r\n            foreach<\/span> (<\/span>var<\/span> bikeSummary<\/span> in<\/span> bikeSummaries<\/span>.<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>IsAwesome<\/span>))<\/span>\r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>bikeSummary<\/span>.<\/span>Name<\/span>);<\/span>\r\n\r\n            \/\/ ASPARALLEL<\/span>\r\n            \/\/ \u90aa\u6076\u7684\u7279\u6027 \u2014\u2014 \u7ec4\u5408\u4e86linq\u548c\u5e76\u884c\u64cd\u4f5c<\/span>\r\n            var<\/span> threeWheelers<\/span> =<\/span> bikes<\/span>.<\/span>AsParallel<\/span>().<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Wheels<\/span> ==<\/span> 3<\/span>).<\/span>Select<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Name<\/span>);<\/span>\r\n            \/\/ \u4ee5\u4e0a\u4ee3\u7801\u4f1a\u5e76\u53d1\u5730\u8fd0\u884c\u3002\u4f1a\u81ea\u52a8\u65b0\u5f00\u7ebf\u7a0b\uff0c\u5206\u522b\u8ba1\u7b97\u7ed3\u679c\u3002<\/span>\r\n            \/\/ \u9002\u7528\u4e8e\u591a\u6838\u3001\u5927\u6570\u636e\u91cf\u7684\u573a\u666f\u3002<\/span>\r\n\r\n            \/\/ LINQ - \u5c06IQueryable<T>\u6620\u5c04\u5230\u5b58\u50a8\uff0c\u5ef6\u7f13\u6267\u884c<\/span>\r\n            \/\/ \u4f8b\u5982 LinqToSql \u6620\u5c04\u6570\u636e\u5e93, LinqToXml \u6620\u5c04XML\u6587\u6863<\/span>\r\n            var<\/span> db<\/span> =<\/span> new<\/span> BikeRespository<\/span>();<\/span>\r\n\r\n            \/\/ \u6267\u884c\u88ab\u5ef6\u8fdf\u4e86\uff0c\u8fd9\u5bf9\u4e8e\u67e5\u8be2\u6570\u636e\u5e93\u6765\u8bf4\u5f88\u597d<\/span>\r\n            var<\/span> filter<\/span> =<\/span> db<\/span>.<\/span>Bikes<\/span>.<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>HasTassles<\/span>);<\/span> \/\/ \u4e0d\u8fd0\u884c\u67e5\u8be2<\/span>\r\n            if<\/span> (<\/span>42<\/span> ><\/span> 6<\/span>)<\/span> \/\/ \u4f60\u53ef\u4ee5\u4e0d\u65ad\u5730\u589e\u52a0\u7b5b\u9009\uff0c\u5305\u62ec\u6709\u6761\u4ef6\u7684\u7b5b\u9009\uff0c\u4f8b\u5982\u7528\u4e8e\u201c\u9ad8\u7ea7\u641c\u7d22\u201d\u529f\u80fd<\/span>\r\n                filter<\/span> =<\/span> filter<\/span>.<\/span>Where<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>IsBroken<\/span>);<\/span> \/\/ \u4e0d\u8fd0\u884c\u67e5\u8be2 <\/span>\r\n\r\n            var<\/span> query<\/span> =<\/span> filter<\/span>\r\n                .<\/span>OrderBy<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Wheels<\/span>)<\/span>\r\n                .<\/span>ThenBy<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Name<\/span>)<\/span>\r\n                .<\/span>Select<\/span>(<\/span>b<\/span> =><\/span> b<\/span>.<\/span>Name<\/span>);<\/span> \/\/ \u4ecd\u7136\u4e0d\u8fd0\u884c\u67e5\u8be2<\/span>\r\n\r\n            \/\/ \u73b0\u5728\u8fd0\u884c\u67e5\u8be2\uff0c\u8fd0\u884c\u67e5\u8be2\u7684\u65f6\u5019\u4f1a\u6253\u5f00\u4e00\u4e2a\u8bfb\u53d6\u5668\uff0c\u6240\u4ee5\u4f60\u8fed\u4ee3\u7684\u662f\u4e00\u4e2a\u526f\u672c<\/span>\r\n            foreach<\/span> (<\/span>string<\/span> bike<\/span> in<\/span> query<\/span>)<\/span> \r\n                Console<\/span>.<\/span>WriteLine<\/span>(<\/span>result<\/span>);<\/span>\r\n\r\n\r\n\r\n        }<\/span>\r\n\r\n    }<\/span> \/\/ \u7ed3\u675fLearnCSharp\u7c7b<\/span>\r\n\r\n    \/\/ \u4f60\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a .cs \u6587\u4ef6\u4e2d\u5305\u542b\u5176\u4ed6\u7c7b<\/span>\r\n\r\n    public<\/span> static<\/span> class<\/span> Extensions<\/span>\r\n    {<\/span>\r\n        \/\/ \u6269\u5c55\u51fd\u6570<\/span>\r\n        public<\/span> static<\/span> void<\/span> Print<\/span>(<\/span>this<\/span> object<\/span> obj<\/span>)<\/span>\r\n        {<\/span>\r\n            Console<\/span>.<\/span>WriteLine<\/span>(<\/span>obj<\/span>.<\/span>ToString<\/span>());<\/span>\r\n        }<\/span>\r\n    }<\/span>\r\n    \/\/ \u58f0\u660e\u7c7b\u7684\u8bed\u6cd5\uff1a<\/span>\r\n    \/\/ <public\/private\/protected\/internal> class <\u7c7b\u540d>{<\/span>\r\n    \/\/    \/\/\u6570\u636e\u5b57\u6bb5, \u6784\u9020\u5668, \u5185\u90e8\u51fd\u6570.<\/span>\r\n    \/<\/span>     \/\/ \u5728Java\u4e2d\u51fd\u6570\u88ab\u79f0\u4e3a\u65b9\u6cd5\u3002<\/span>\r\n    \/\/ }<\/span>\r\n\r\n    public<\/span> class<\/span> Bicycle<\/span>\r\n    {<\/span>\r\n        \/\/ \u81ea\u884c\u8f66\u7684\u5b57\u6bb5\u3001\u53d8\u91cf<\/span>\r\n        public<\/span> int<\/span> Cadence<\/span> \/\/ Public: \u4efb\u4f55\u5730\u65b9\u90fd\u53ef\u4ee5\u8bbf\u95ee<\/span>\r\n        {<\/span>\r\n            get<\/span> \/\/ get - \u5b9a\u4e49\u83b7\u53d6\u5c5e\u6027\u7684\u65b9\u6cd5<\/span>\r\n            {<\/span>\r\n                return<\/span> _cadence<\/span>;<\/span>\r\n            }<\/span>\r\n            set<\/span> \/\/ set - \u5b9a\u4e49\u8bbe\u7f6e\u5c5e\u6027\u7684\u65b9\u6cd5<\/span>\r\n            {<\/span>\r\n                _cadence<\/span> =<\/span> value<\/span>;<\/span> \/\/ value\u662f\u88ab\u4f20\u9012\u7ed9setter\u7684\u503c<\/span>\r\n            }<\/span>\r\n        }<\/span>\r\n        private<\/span> int<\/span> _cadence<\/span>;<\/span>\r\n\r\n        protected<\/span> virtual<\/span> int<\/span> Gear<\/span> \/\/ \u7c7b\u548c\u5b50\u7c7b\u53ef\u4ee5\u8bbf\u95ee<\/span>\r\n        {<\/span>\r\n            get<\/span>;<\/span> \/\/ \u521b\u5efa\u4e00\u4e2a\u81ea\u52a8\u5c5e\u6027\uff0c\u65e0\u9700\u6210\u5458\u5b57\u6bb5<\/span>\r\n            set<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        internal<\/span> int<\/span> Wheels<\/span> \/\/ Internal:\u5728\u540c\u4e00\u7a0b\u5e8f\u96c6\u5185\u53ef\u4ee5\u8bbf\u95ee<\/span>\r\n        {<\/span>\r\n            get<\/span>;<\/span>\r\n            private<\/span> set<\/span>;<\/span> \/\/ \u53ef\u4ee5\u7ed9get\/set\u65b9\u6cd5\u6dfb\u52a0\u4fee\u9970\u7b26<\/span>\r\n        }<\/span>\r\n\r\n        int<\/span> _speed<\/span>;<\/span> \/\/ \u9ed8\u8ba4\u4e3aprivate: \u53ea\u53ef\u4ee5\u5728\u8fd9\u4e2a\u7c7b\u5185\u8bbf\u95ee\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528`private`\u5173\u952e\u8bcd<\/span>\r\n        public<\/span> string<\/span> Name<\/span> {<\/span> get<\/span>;<\/span> set<\/span>;<\/span> }<\/span>\r\n\r\n        \/\/ enum\u7c7b\u578b\u5305\u542b\u4e00\u7ec4\u5e38\u91cf<\/span>\r\n        \/\/ \u5b83\u5c06\u540d\u79f0\u6620\u5c04\u5230\u503c\uff08\u9664\u975e\u7279\u522b\u8bf4\u660e\uff0c\u662f\u4e00\u4e2a\u6574\u578b\uff09<\/span>\r\n        \/\/ enmu\u5143\u7d20\u7684\u7c7b\u578b\u53ef\u4ee5\u662fbyte\u3001sbyte\u3001short\u3001ushort\u3001int\u3001uint\u3001long\u3001ulong\u3002<\/span>\r\n        \/\/ enum\u4e0d\u80fd\u5305\u542b\u76f8\u540c\u7684\u503c\u3002<\/span>\r\n        public<\/span> enum<\/span> BikeBrand<\/span>\r\n        {<\/span>\r\n            AIST<\/span>,<\/span>\r\n            BMC<\/span>,<\/span>\r\n            Electra<\/span> =<\/span> 42<\/span>,<\/span> \/\/\u4f60\u53ef\u4ee5\u663e\u5f0f\u5730\u8d4b\u503c<\/span>\r\n            Gitane<\/span> \/\/ 43<\/span>\r\n        }<\/span>\r\n        \/\/ \u6211\u4eec\u5728Bicycle\u7c7b\u4e2d\u5b9a\u4e49\u7684\u8fd9\u4e2a\u7c7b\u578b\uff0c\u6240\u4ee5\u5b83\u662f\u4e00\u4e2a\u5185\u5d4c\u7c7b\u578b\u3002<\/span>\r\n        \/\/ \u8fd9\u4e2a\u7c7b\u4ee5\u5916\u7684\u4ee3\u7801\u5e94\u5f53\u4f7f\u7528`Bicycle.Brand`\u6765\u5f15\u7528\u3002<\/span>\r\n\r\n        public<\/span> BikeBrand<\/span> Brand<\/span>;<\/span> \/\/ \u58f0\u660e\u4e00\u4e2aenum\u7c7b\u578b\u4e4b\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u58f0\u660e\u8fd9\u4e2a\u7c7b\u578b\u7684\u5b57\u6bb5<\/span>\r\n\r\n        \/\/ \u9759\u6001\u65b9\u6cd5\u7684\u7c7b\u578b\u4e3a\u81ea\u8eab\uff0c\u4e0d\u5c5e\u4e8e\u7279\u5b9a\u7684\u5bf9\u8c61\u3002<\/span>\r\n        \/\/ \u4f60\u65e0\u9700\u5f15\u7528\u5bf9\u8c61\u5c31\u53ef\u4ee5\u8bbf\u95ee\u4ed6\u4eec\u3002<\/span>\r\n        \/\/ Console.WriteLine(\"Bicycles created: \" + Bicycle.bicyclesCreated);<\/span>\r\n        static<\/span> public<\/span> int<\/span> BicyclesCreated<\/span> =<\/span> 0<\/span>;<\/span>\r\n\r\n        \/\/ \u53ea\u8bfb\u503c\u5728\u8fd0\u884c\u65f6\u786e\u5b9a<\/span>\r\n        \/\/ \u5b83\u4eec\u53ea\u80fd\u5728\u58f0\u660e\u6216\u6784\u9020\u5668\u5185\u88ab\u8d4b\u503c<\/span>\r\n        readonly<\/span> bool<\/span> _hasCardsInSpokes<\/span> =<\/span> false<\/span>;<\/span> \/\/ read-only private<\/span>\r\n\r\n        \/\/ \u6784\u9020\u5668\u662f\u521b\u5efa\u7c7b\u7684\u4e00\u79cd\u65b9\u5f0f<\/span>\r\n        \/\/ \u4e0b\u9762\u662f\u4e00\u4e2a\u9ed8\u8ba4\u7684\u6784\u9020\u5668<\/span>\r\n        public<\/span> Bicycle<\/span>()<\/span> \r\n        {<\/span>\r\n            this<\/span>.<\/span>Gear<\/span> =<\/span> 1<\/span>;<\/span> \/\/ \u4f60\u53ef\u4ee5\u4f7f\u7528\u5173\u952e\u8bcdthis\u8bbf\u95ee\u5bf9\u8c61\u7684\u6210\u5458<\/span>\r\n            Cadence<\/span> =<\/span> 50<\/span>;<\/span>  \/\/ \u4e0d\u8fc7\u4f60\u5e76\u4e0d\u603b\u662f\u9700\u8981\u5b83<\/span>\r\n            _speed<\/span> =<\/span> 5<\/span>;<\/span>\r\n            Name<\/span> =<\/span> \"Bontrager\"<\/span>;<\/span>\r\n            Brand<\/span> =<\/span> BikeBrand<\/span>.<\/span>AIST<\/span>;<\/span>\r\n            BicyclesCreated<\/span>++;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u53e6\u4e00\u4e2a\u6784\u9020\u5668\u7684\u4f8b\u5b50\uff08\u5305\u542b\u53c2\u6570\uff09<\/span>\r\n        public<\/span> Bicycle<\/span>(<\/span>int<\/span> startCadence<\/span>,<\/span> int<\/span> startSpeed<\/span>,<\/span> int<\/span> startGear<\/span>,<\/span>\r\n                       string<\/span> name<\/span>,<\/span> bool<\/span> hasCardsInSpokes<\/span>,<\/span> BikeBrand<\/span> brand<\/span>)<\/span> \r\n            :<\/span> base<\/span>()<\/span> \/\/ \u9996\u5148\u8c03\u7528base<\/span>\r\n        {<\/span>\r\n            Gear<\/span> =<\/span> startGear<\/span>;<\/span> \r\n            Cadence<\/span> =<\/span> startCadence<\/span>;<\/span>\r\n            _speed<\/span> =<\/span> startSpeed<\/span>;<\/span>\r\n            Name<\/span> =<\/span> name<\/span>;<\/span> \r\n            _hasCardsInSpokes<\/span> =<\/span> hasCardsInSpokes<\/span>;<\/span>\r\n            Brand<\/span> =<\/span> brand<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u6784\u9020\u5668\u53ef\u4ee5\u8fde\u9501\u4f7f\u7528<\/span>\r\n        public<\/span> Bicycle<\/span>(<\/span>int<\/span> startCadence<\/span>,<\/span> int<\/span> startSpeed<\/span>,<\/span> BikeBrand<\/span> brand<\/span>)<\/span> :<\/span>\r\n            this<\/span>(<\/span>startCadence<\/span>,<\/span> startSpeed<\/span>,<\/span> 0<\/span>,<\/span> \"big wheels\"<\/span>,<\/span> true<\/span>,<\/span> brand<\/span>)<\/span>\r\n        {<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u51fd\u6570\u8bed\u6cd5<\/span>\r\n        \/\/ <public\/private\/protected> <\u8fd4\u56de\u503c> <\u51fd\u6570\u540d\u79f0>(<\u53c2\u6570>)<\/span>\r\n\r\n        \/\/ \u7c7b\u53ef\u4ee5\u4e3a\u5b57\u6bb5\u5b9e\u73b0 getters \u548c setters \u65b9\u6cd5 for their fields<\/span>\r\n        \/\/ \u6216\u8005\u53ef\u4ee5\u5b9e\u73b0\u5c5e\u6027\uff08C#\u63a8\u8350\u4f7f\u7528\u8fd9\u4e2a\uff09<\/span>\r\n        \/\/ \u65b9\u6cd5\u7684\u53c2\u6570\u53ef\u4ee5\u6709\u9ed8\u8ba4\u503c<\/span>\r\n        \/\/ \u5728\u6709\u9ed8\u8ba4\u503c\u7684\u60c5\u51b5\u4e0b\uff0c\u8c03\u7528\u65b9\u6cd5\u7684\u65f6\u5019\u53ef\u4ee5\u7701\u7565\u76f8\u5e94\u7684\u53c2\u6570<\/span>\r\n        public<\/span> void<\/span> SpeedUp<\/span>(<\/span>int<\/span> increment<\/span> =<\/span> 1<\/span>)<\/span>\r\n        {<\/span>\r\n            _speed<\/span> +=<\/span> increment<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        public<\/span> void<\/span> SlowDown<\/span>(<\/span>int<\/span> decrement<\/span> =<\/span> 1<\/span>)<\/span>\r\n        {<\/span>\r\n            _speed<\/span> -=<\/span> decrement<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u5c5e\u6027\u53ef\u4ee5\u8bbf\u95ee\u548c\u8bbe\u7f6e\u503c<\/span>\r\n        \/\/ \u5f53\u53ea\u9700\u8981\u8bbf\u95ee\u6570\u636e\u7684\u65f6\u5019\uff0c\u8003\u8651\u4f7f\u7528\u5c5e\u6027\u3002<\/span>\r\n        \/\/ \u5c5e\u6027\u53ef\u4ee5\u5b9a\u4e49get\u548cset\uff0c\u6216\u8005\u662f\u540c\u65f6\u5b9a\u4e49\u4e24\u8005<\/span>\r\n        private<\/span> bool<\/span> _hasTassles<\/span>;<\/span> \/\/ private variable<\/span>\r\n        public<\/span> bool<\/span> HasTassles<\/span> \/\/ public accessor<\/span>\r\n        {<\/span>\r\n            get<\/span> {<\/span> return<\/span> _hasTassles<\/span>;<\/span> }<\/span>\r\n            set<\/span> {<\/span> _hasTassles<\/span> =<\/span> value<\/span>;<\/span> }<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u4f60\u53ef\u4ee5\u5728\u4e00\u884c\u4e4b\u5185\u5b9a\u4e49\u81ea\u52a8\u5c5e\u6027<\/span>\r\n        \/\/ \u8fd9\u4e2a\u8bed\u6cd5\u4f1a\u81ea\u52a8\u521b\u5efa\u540e\u5907\u5b57\u6bb5<\/span>\r\n        \/\/ \u4f60\u53ef\u4ee5\u7ed9getter\u6216setter\u8bbe\u7f6e\u8bbf\u95ee\u4fee\u9970\u7b26<\/span>\r\n        \/\/ \u4ee5\u4fbf\u9650\u5236\u5b83\u4eec\u7684\u8bbf\u95ee<\/span>\r\n        public<\/span> bool<\/span> IsBroken<\/span> {<\/span> get<\/span>;<\/span> private<\/span> set<\/span>;<\/span> }<\/span>\r\n\r\n        \/\/ \u5c5e\u6027\u7684\u5b9e\u73b0\u53ef\u4ee5\u662f\u81ea\u52a8\u7684<\/span>\r\n        public<\/span> int<\/span> FrameSize<\/span>\r\n        {<\/span>\r\n            get<\/span>;<\/span>\r\n            \/\/ \u4f60\u53ef\u4ee5\u7ed9get\u6216set\u6307\u5b9a\u8bbf\u95ee\u4fee\u9970\u7b26<\/span>\r\n            \/\/ \u4ee5\u4e0b\u4ee3\u7801\u610f\u5473\u7740\u53ea\u6709Bicycle\u7c7b\u53ef\u4ee5\u8c03\u7528Framesize\u7684set<\/span>\r\n            private<\/span> set<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/\u663e\u793a\u5bf9\u8c61\u5c5e\u6027\u7684\u65b9\u6cd5<\/span>\r\n        public<\/span> virtual<\/span> string<\/span> Info<\/span>()<\/span>\r\n        {<\/span>\r\n            return<\/span> \"Gear: \"<\/span> +<\/span> Gear<\/span> +<\/span>\r\n                    \" Cadence: \"<\/span> +<\/span> Cadence<\/span> +<\/span>\r\n                    \" Speed: \"<\/span> +<\/span> _speed<\/span> +<\/span>\r\n                    \" Name: \"<\/span> +<\/span> Name<\/span> +<\/span>\r\n                    \" Cards in Spokes: \"<\/span> +<\/span> (<\/span>_hasCardsInSpokes<\/span> ?<\/span> \"yes\"<\/span> :<\/span> \"no\"<\/span>)<\/span> +<\/span>\r\n                    \"\\n------------------------------\\n\"<\/span>\r\n                    ;<\/span>\r\n        }<\/span>\r\n\r\n        \/\/ \u65b9\u6cd5\u53ef\u4ee5\u662f\u9759\u6001\u7684\u3002\u901a\u5e38\u7528\u4e8e\u8f85\u52a9\u65b9\u6cd5\u3002<\/span>\r\n        public<\/span> static<\/span> bool<\/span> DidWeCreateEnoughBycles<\/span>()<\/span>\r\n        {<\/span>\r\n            \/\/ \u5728\u9759\u6001\u65b9\u6cd5\u4e2d\uff0c\u4f60\u53ea\u80fd\u5f15\u7528\u7c7b\u7684\u9759\u6001\u6210\u5458<\/span>\r\n            return<\/span> BicyclesCreated<\/span> ><\/span> 9000<\/span>;<\/span>\r\n        }<\/span> \/\/ \u5982\u679c\u4f60\u7684\u7c7b\u53ea\u9700\u8981\u9759\u6001\u6210\u5458\uff0c\u8003\u8651\u5c06\u6574\u4e2a\u7c7b\u4f5c\u4e3a\u9759\u6001\u7c7b\u3002<\/span>\r\n\r\n\r\n    }<\/span> \/\/  Bicycle\u7c7b\u7ed3\u675f<\/span>\r\n\r\n    \/\/ PennyFarthing\u662fBicycle\u7684\u4e00\u4e2a\u5b50\u7c7b<\/span>\r\n    class<\/span> PennyFarthing<\/span> :<\/span> Bicycle<\/span>\r\n    {<\/span>\r\n        \/\/ (Penny Farthings\u662f\u4e00\u79cd\u524d\u8f6e\u5f88\u5927\u7684\u81ea\u884c\u8f66\u3002\u6ca1\u6709\u9f7f\u8f6e\u3002\uff09<\/span>\r\n\r\n        \/\/ \u8c03\u7528\u7236\u6784\u9020\u5668<\/span>\r\n        public<\/span> PennyFarthing<\/span>(<\/span>int<\/span> startCadence<\/span>,<\/span> int<\/span> startSpeed<\/span>)<\/span> :<\/span>\r\n            base<\/span>(<\/span>startCadence<\/span>,<\/span> startSpeed<\/span>,<\/span> 0<\/span>,<\/span> \"PennyFarthing\"<\/span>,<\/span> true<\/span>,<\/span> BikeBrand<\/span>.<\/span>Electra<\/span>)<\/span>\r\n        {<\/span>\r\n        }<\/span>\r\n\r\n        protected<\/span> override<\/span> int<\/span> Gear<\/span>\r\n        {<\/span>\r\n            get<\/span>\r\n            {<\/span>\r\n                return<\/span> 0<\/span>;<\/span>\r\n            }<\/span>\r\n            set<\/span>\r\n            {<\/span>\r\n                throw<\/span> new<\/span> ArgumentException<\/span>(<\/span>\"\u4f60\u4e0d\u53ef\u80fd\u5728PennyFarthing\u4e0a\u5207\u6362\u9f7f\u8f6e\"<\/span>);<\/span>\r\n            }<\/span>\r\n        }<\/span>\r\n\r\n        public<\/span> override<\/span> string<\/span> Info<\/span>()<\/span>\r\n        {<\/span>\r\n            string<\/span> result<\/span> =<\/span> \"PennyFarthing bicycle \"<\/span>;<\/span>\r\n            result<\/span> +=<\/span> base<\/span>.<\/span>ToString<\/span>();<\/span> \/\/ \u8c03\u7528\u7236\u65b9\u6cd5<\/span>\r\n            return<\/span> result<\/span>;<\/span>\r\n        }<\/span>\r\n    }<\/span>\r\n\r\n    \/\/ \u63a5\u53e3\u53ea\u5305\u542b\u6210\u5458\u7684\u7b7e\u540d\uff0c\u800c\u6ca1\u6709\u5b9e\u73b0\u3002<\/span>\r\n    interface<\/span> IJumpable<\/span>\r\n    {<\/span>\r\n        void<\/span> Jump<\/span>(<\/span>int<\/span> meters<\/span>);<\/span> \/\/ \u6240\u6709\u63a5\u53e3\u6210\u5458\u662f\u9690\u5f0f\u5730\u516c\u5f00\u7684<\/span>\r\n    }<\/span>\r\n\r\n    interface<\/span> IBreakable<\/span>\r\n    {<\/span>\r\n        bool<\/span> Broken<\/span> {<\/span> get<\/span>;<\/span> }<\/span> \/\/ \u63a5\u53e3\u53ef\u4ee5\u5305\u542b\u5c5e\u6027\u3001\u65b9\u6cd5\u548c\u4e8b\u4ef6<\/span>\r\n    }<\/span>\r\n\r\n    \/\/ \u7c7b\u53ea\u80fd\u7ee7\u627f\u4e00\u4e2a\u7c7b\uff0c\u4f46\u662f\u53ef\u4ee5\u5b9e\u73b0\u4efb\u610f\u6570\u91cf\u7684\u63a5\u53e3<\/span>\r\n    {<\/span>\r\n        int<\/span> damage<\/span> =<\/span> 0<\/span>;<\/span>\r\n\r\n        public<\/span> void<\/span> Jump<\/span>(<\/span>int<\/span> meters<\/span>)<\/span>\r\n        {<\/span>\r\n            damage<\/span> +=<\/span> meters<\/span>;<\/span>\r\n        }<\/span>\r\n\r\n        public<\/span> bool<\/span> Broken<\/span>\r\n        {<\/span>\r\n            get<\/span>\r\n            {<\/span>\r\n                return<\/span> damage<\/span> ><\/span> 100<\/span>;<\/span>\r\n            }<\/span>\r\n        }<\/span>\r\n    }<\/span>\r\n\r\n    \/\/\/ <summary><\/span>\r\n    \/\/\/ \u8fde\u63a5\u6570\u636e\u5e93\uff0c\u4e00\u4e2a LinqToSql\u7684\u793a\u4f8b\u3002<\/span>\r\n    \/\/\/ EntityFramework Code First \u5f88\u68d2 (\u7c7b\u4f3c Ruby\u7684 ActiveRecord, \u4e0d\u8fc7\u662f\u53cc\u5411\u7684)<\/span>\r\n    \/\/\/ http:\/\/msdn.microsoft.com\/en-us\/data\/jj193542.aspx<\/span>\r\n    \/\/\/ <\/summary><\/span>\r\n    public<\/span> class<\/span> BikeRespository<\/span> :<\/span> DbSet<\/span>\r\n    {<\/span>\r\n        public<\/span> BikeRespository<\/span>()<\/span>\r\n            :<\/span> base<\/span>()<\/span>\r\n        {<\/span>\r\n        }<\/span>\r\n\r\n        public<\/span> DbSet<\/span><<\/span>Bicycle<\/span>><\/span> Bikes<\/span> {<\/span> get<\/span>;<\/span> set<\/span>;<\/span> }<\/span>\r\n    }<\/span>\r\n}<\/span> \/\/ \u7ed3\u675f Namespace\r\n<\/span><\/pre>\n

    \u4ee5\u4e0a\u672a\u6d89\u53ca\u7684\u5185\u5bb9<\/h3>\n
    \n
  • Flags<\/li>\n
  • Attributes<\/li>\n
  • \u9759\u6001\u5c5e\u6027<\/li>\n
  • Exceptions, Abstraction<\/li>\n
  • ASP.NET (Web Forms\/MVC\/WebMatrix)<\/li>\n
  • Winforms<\/li>\n
  • Windows Presentation Foundation (WPF)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"

    \u7b80\u4ecb C# \u662f\u4e00\u4e2a\u73b0\u4ee3\u7684\u3001\u901a\u7528\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3002 C# \u662f\u4e13\u4e3a\u516c\u5171\u8bed\u8a00\u57fa\u7840\u7ed3\u6784\uff08CLI\uff09\u8bbe\u8ba1\u7684\u3002CLI \u7531\u53ef\u6267\u884c\u4ee3\u7801\u548c\u8fd0\u884c\u65f6\u73af\u5883\u7ec4\u6210\uff0c\u5141\u8bb8\u5728\u4e0d\u540c\u7684\u8ba1\u7b97\u673a\u5e73\u53f0\u548c\u4f53\u7cfb\u7ed3\u6784\u4e0a\u4f7f\u7528\u5404\u79cd\u9ad8\u7ea7\u8bed\u8a00\u3002 \u4e0b\u9762\u5217\u51fa\u4e86 C# \u6210\u4e3a\u4e00\u79cd\u5e7f\u6cdb\u5e94\u7528\u7684\u4e13\u4e1a\u8bed\u8a00\u7684\u539f\u56e0\uff1a \u73b0\u4ee3\u7684\u3001\u901a\u7528\u7684\u7f16\u7a0b\u8bed\u8a00\u3002 \u9762\u5411\u5bf9\u8c61\u3002 \u9762\u5411\u7ec4\u4ef6\u3002 \u5bb9\u6613\u5b66\u4e60\u3002 \u7ed3\u6784\u5316\u8bed\u8a00\u3002 \u5b83\u4ea7\u751f\u9ad8\u6548\u7387\u7684\u7a0b\u5e8f\u3002 \u5b83\u53ef\u4ee5\u5728\u591a\u79cd\u8ba1\u7b97\u673a\u5e73\u53f0\u4e0a\u7f16\u8bd1\u3002 .Net \u6846\u67b6\u7684\u4e00\u90e8\u5206\u3002 \u901f\u6210\u793a\u4f8b \/\/ \u5355\u884c\u6ce8\u91ca\u4ee5 \/\/ \u5f00\u59cb \/* \u591a\u884c\u6ce8\u91ca\u662f\u8fd9\u6837\u7684 *\/ \/\/\/ <summary> \/\/\/ XML\u6587\u6863\u6ce8\u91ca \/\/\/ <\/summary> \/\/ \u58f0\u660e\u5e94\u7528\u7528\u5230\u7684 …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1091"}],"collection":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/comments?post=1091"}],"version-history":[{"count":4,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1091\/revisions"}],"predecessor-version":[{"id":1095,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1091\/revisions\/1095"}],"wp:attachment":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/media?parent=1091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/categories?post=1091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/tags?post=1091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}