Microsoft C#±àÂë¹æ·¶ ÏÂÔØ±¾ÎÄ

Page 25

?Ò»¶¨ÇëÔÚÏòÓû§Êä³ö½á¹ûʱ£¬Ê¹ÓûùÓÚStringComparison.CurrentCultureµÄ×Ö·û´®²Ù×÷¡£

?Ò»¶¨ÇëÔڱȽÏÓïÑÔÎÞ¹Ø×Ö·û´®£¨·ûºÅ£¬µÈ£©Ê±£¬Ê¹Ó÷ÇÓïÑÔѧµÄStringComparison.Ordinal»òÕß

StringComparison.OrdinalIgnoreCaseÖµ£¬¶ø²»ÊÇ»ùÓÚCultureInfo.InvariantCultureµÄ×Ö·û´®²Ù×÷¡£Ò»°ã¶øÑÔ£¬²»ÒªÊ¹ÓûùÓÚStringComparison.InvariantCultureµÄ×Ö·û´®²Ù×÷¡£Ò»¸öÀýÍâÊǵ±Äã¼á³ÖÆäÓïÑÔÉÏÓÐÒâÒ壬¶øÓë¾ßÌåÎÄ»¯Î޹صÄÇé¿ö¡£

?Ò»¶¨ÇëʹÓÃString.EqualsµÄÖØÔØ°æ±¾À´²âÊÔ2¸ö×Ö·û´®ÊÇ·ñÏàµÈ¡£±ÈÈ磬ºöÂÔ´óСдºó£¬ÅжÏ2¸ö×Ö·û´®ÊÇ·ñÏàµÈ£¬

if£¨str1.Equals£¨str2, StringComparison.OrdinalIgnoreCase£©£©

If£¨str1.Equals£¨str2, StringComparison.OrdinalIgnoreCase£©£©Then

?Ò»¶¨²»ÒªÊ¹ÓÃString.Compare»òCompareToµÄÖØÔØ°æ±¾À´¼ìÑé·µ»ØÖµÊÇ·ñΪ0£¬À´ÅжÏ×Ö·û´®ÊÇ·ñÏàµÈ¡£Õâ2¸öº¯ÊýÊÇÓÃÓÚ×Ö·û´®ÅÅÐò£¬¶ø·Ç¼ì²éÏàµÈÐÔ¡£

?Ò»¶¨ÇëÔÚ×Ö·û´®±È½Ïʱ£¬ÒÔString.ToUpperInvariantº¯Êýʹ×Ö·û´®¹æ·¶»¯£¬¶ø²»ÓÃString.ToLowerInvariant¡£

3.7 Êý×éºÍ¼¯ºÏ

?ÄúÓ¦¸ÃÔڵͲã´Îº¯ÊýÖÐʹÓÃÊý×飬À´¼õÉÙÄÚ´æÏûºÄ£¬ÔöÇ¿ÐÔÄܱíÏÖ¡£¶ÔÓÚ¹«¿ª½Ó¿Ú£¬ÔòÆ«ÏòÑ¡Ôñ¼¯ºÏ¡£

¼¯ºÏÌṩÁ˶ÔÓÚÆäÄÚÈݸü¶àµÄ¿ØÖÆÈ¨£¬¿ÉÒÔËæ×Åʱ¼ä¸ÄÉÆ£¬Ìá¸ß¿ÉÓÃÐÔ¡£ÁíÍ⣬²»ÍƼöÔÚÖ»¶Á³¡¾°ÏÂʹÓÃÊý×飬ÒòΪÊý×é¿Ë¡µÄ´ú¼ÛÌ«¸ß¡£

È»¶ø£¬Èç¹ûÄú°ÑÊìÁ·¿ª·¢Õß×÷ΪĿ±ê£¬¶ÔÓÚÖ»¶Á³¡¾°Ê¹ÓÃÊý×éÒ²ÊǸö²»´íµÄÖ÷Òâ¡£Êý×éµÄÄÚ´æÕ¼ÓñȽϵͣ¬Õâ¼õÉÙÁ˹¤×÷Çø£¬²¢ÒòΪÔËÐÐʱµÄÓÅ»¯Äܸü¿ìµÄ·ÃÎÊÊý×éÔªËØ¡£

? 2016 Microsoft Corporation. All rights reserved.

Page 26

?Ò»¶¨²»ÒªÊ¹ÓÃÖ»¶ÁµÄÊý×é×ֶΡ£×ֶα¾ÉíÖ»¶Á£¬²»Äܱ»Ð޸쬵«ÊÇÆäÄÚ²¿ÔªËØ¿ÉÒÔ±»Ð޸ġ£ÒÔÏÂʾÀýչʾÁËʹÓÃÖ»¶ÁÊý×é×ֶεÄÏÝÚ壺

Bad:

publicstaticreadonlychar[] InvalidPathChars = { '\\\, '<', '>', '|'};

ÕâÔÊÐíµ÷ÓÃÕßÐÞ¸ÄÊý×éÄÚµÄÖµ£º

InvalidPathChars[0] = 'A';

Äú¿ÉÒÔʹÓÃÒ»¸öÖ»¶Á¼¯ºÏ£¨Ö»ÒªÆäÔªËØÒ²ÊDz»¿É±äµÄ£©£¬»òÕßÔÚ·µ»ØÖ®Ç°½øÐÐÊý×é¿Ë¡¡£È»¶ø£¬Êý×é¿Ë¡µÄ´ú¼Û¿ÉÄܹý¸ß£º

publicstatic ReadOnlyCollection GetInvalidPathChars£¨£© {

return Array.AsReadOnly£¨badChars£©; }

publicstaticchar[] GetInvalidPathChars£¨£© {

return£¨char[]£©badChars.Clone£¨£©; }

?ÄúÓ¦¸ÃʹÓò»¹æÔòÊý×éÀ´´úÌæÊ¹ÓöàάÊý×é¡£Ò»¸ö²»¹æÔòÊý×éÊÇÖ¸ÆäÔªËØ±¾ÉíÒ²ÊÇÒ»¸öÊý×é¡£¹¹³ÉÔªËØµÄÊý×é¿ÉÄÜÓв»Í¬´óС£¬ÕâÑùÏà½ÏÓÚ¶àάÊý×éÄܼõÉÙһЩÊý¾Ý¼¯µÄ¿Õ¼äÀË·Ñ£¨ÀýÈ磬ϡÊè¾ØÕ󣩡£ÁíÍ⣬CLRÄܹ»¶Ô²»¹æÔòÊý×éµÄË÷Òý²Ù×÷½øÐÐÓÅ»¯£¬ËùÒÔÔÚijЩÇé¾°Ï£¬¾ßÓиüºÃµÄÐÔÄܱíÏÖ¡£

// ²»¹æÔòÊý×é

int[][] jaggedArray = {

newint[] {1,2,3,4}, newint[] {5,6,7}, newint[] {8}, newint[] {9} };

Dim jaggedArray AsInteger£¨£©£¨£© = NewInteger£¨£©£¨£© _ { _

NewInteger£¨£© {1, 2, 3, 4}, _

? 2016 Microsoft Corporation. All rights reserved.

Page 27

NewInteger£¨£© {5, 6, 7}, _ NewInteger£¨£© {8}, _ NewInteger£¨£© {9} _ }

// ¶àάÊý×é

int [,] multiDimArray = {

{1,2,3,4}, {5,6,7,0}, {8,0,0,0}, {9,0,0,0} };

Dim multiDimArray£¨,£©AsInteger = _ { _

{1, 2, 3, 4}, _ {5, 6, 7, 0}, _ {8, 0, 0, 0}, _ {9, 0, 0, 0} _ }

?Ò»¶¨Ç뽫´ú±íÁ˶Á/д¼¯ºÏµÄÊôÐÔ»ò·µ»ØÖµÉùÃ÷Ϊ Collection»òÆä×ÓÀ࣬½«´ú±íÁËÖ»¶Á¼¯ºÏµÄÊôÐÔ»ò·µ»ØÖµÉùÃ÷ΪReadOnlyCollection»òÆä×ÓÀà¡£

?ÄúÓ¦¸ÃÖØÐ¿¼ÂǶÔÓÚArrayListµÄʹÓã¬ÒòΪËùÓÐÌí¼ÓÖÁÆäÖеĶÔÏó¶¼±»µ±×öSystem.Object£¬µ±´ÓArrayListÈ¡»ØÖµÊ±£¬ÕâЩ¶ÔÏó¶¼»á²ðÏ䣬²¢·µ»ØÆäÕæÊµµÄÖµÀàÐÍ¡£ËùÒÔÎÒÃÇÍÆ¼öÄúʹÓö¨ÖÆÀàÐ͵ļ¯ºÏ£¬¶ø²»ÊÇArrayList¡£±ÈÈ磬.NET ÔÚSystem.Collection.SpecializedÃüÃû¿Õ¼äÄÚΪStringÌṩÁËÇ¿ÀàÐͼ¯ºÏStringCollection¡£

?ÄúÓ¦¸ÃÖØÐ¿¼ÂǶÔÓÚHashtableµÄʹÓá£Ïà·´£¬ÄúÓ¦¸Ã³¢ÊÔÆäËû×ÖµäÀ࣬ÀýÈçStringDictionary£¬NameValueCollection£¬HybridCollection¡£³ý·ÇHashtableÖ»´æ´¢ÉÙÁ¿Öµ£¬×îºÃ²»ÒªÊ¹ÓÃHashtable¡£

?ÄúÓ¦¸ÃÔÚʵÏÖ¼¯ºÏÀàÐÍʱ£¬ÎªÆäʵÏÖIEnumerable½Ó¿Ú£¬ÕâÑù¸Ã¼¯ºÏ±ãÄÜÓÃÓÚLINQ to Objects¡£

? 2016 Microsoft Corporation. All rights reserved.

Page 28

?Ò»¶¨²»ÒªÔÚͬһ¸öÀàÐÍÉÏͬʱʵÏÖIEnumeratorºÍIEnumerable½Ó¿Ú¡£Í¬Ñù£¬Ò²²»ÒªÍ¬Ê±ÊµÏÖ·Ç·ºÐͽӿÚIEnumeratorºÍIEnumerable¡£ËùÒÔ£¬Ò»¸öÀàÐÍÖ»ÄܳÉΪһ¸ö¼¯ºÏ»òÕßÒ»¸öö¾ÙÆ÷£¬¶ø²»¿É¶þÕ߽Եá£

?Ò»¶¨²»Òª·µ»ØÊý×é»ò¼¯ºÏµÄnullÒýÓ᣿ÕÖµÊý×é»ò¼¯ºÏµÄº¬ÒåÔÚ´úÂë»·¾³ÖкÜÄѱ»Àí½â¡£±ÈÈ磬һ¸öÓû§¿ÉÄܼٶ¨ÈçÏ´úÂëÄܹ»Õý³£ÔËÐУ¬ËùÒÔÓ¦¸Ã·µ»ØÒ»¸ö¿ÕÊý×é»ò¼¯ºÏ£¬¶ø²»ÊÇnullÒýÓá£

int[] arr = SomeOtherFunc£¨£©; foreach£¨int v in arr£© { ... }

3.8 ½á¹¹Ìå

?Ò»¶¨ÇëÈ·±£½«ËùÓÐʵÀýÊý¾ÝÉèÖÃΪ0Öµ£¬false»òÕßÊÇnull¡£µ±´´½¨½á¹¹ÌåÊý×éʱ£¬ÕâÑùÄÜ·ÀÖ¹ÒâÍâ´´½¨ÁËÎÞЧʵÀý¡£

?Ò»¶¨ÇëΪֵÀàÐÍʵÏÖIEquatable½Ó¿Ú¡£ÖµÀàÐ͵ÄObject.Equals·½·¨»áÒýÆð×°Ïä²Ù×÷¡£ÇÒÒòΪʹÓÃÁË·´ÉäÌØÐÔ£¬ËùÒÔÆäĬÈÏʵÏÖЧÂʲ»¸ß¡£IEquatable.Equals ½ÏÆäÓÐÏ൱´óµÄÐÔÄÜÌáÉý£¬ÇÒÆäʵÏÖ¿ÉÒÔ²»Òý·¢×°Ïä²Ù×÷¡£

3.8.1 ½á¹¹ÌåvsÀà

?Ò»¶¨²»Òª¶¨Òå½á¹¹Ì壬³ý·ÇÆä¾ßÓÐÈçÏÂÌØÐÔ£º

? ËüÔÚÂß¼­ÉÏ´ú±íÁËÒ»¸öµ¥Öµ£¬ÀàËÆÓÚԭʼÀàÐÍ£¨ÀýÈ磬int¡¢ double£¬µÈµÈ£©¡£ ? ÆäʾÀý´óССÓÚ16×Ö½Ú¡£ ? ËüÊDz»¿É±äµÄ¡£

? Ëü²»»áÒý·¢Æµ·±µÄ×°Ïä²ðÏä²Ù×÷¡£

? 2016 Microsoft Corporation. All rights reserved.