Сţµç×ÓÊé > ÆäËûµç×ÓÊé > VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ) >

µÚ28ÕÂ

VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ)-µÚ28ÕÂ

С˵£º VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ) ×ÖÊý£º ÿҳ3500×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡






Character¡¡Mapping¡¡



A¡¡single¡¡character¡¡takes¡¡16¡¡bits¡¡of¡¡space£»¡¡and¡¡the¡¡space¡¡that¡¡a¡¡string¡¡consumes¡¡depends¡¡on¡¡the¡¡¡¡

number¡¡of¡¡characters¡¡in¡¡a¡¡buffer¡£¡¡If¡¡a¡¡buffer¡¡is¡¡10¡¡characters¡¡long£»¡¡then¡¡the¡¡entire¡¡buffer¡¡takes¡¡up¡¡¡¡

160¡¡bits¡¡of¡¡space¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡A¡¡single¡¡character¡¡is¡¡16¡¡bits¡¡long¡¡so¡¡that¡¡a¡¡buffer¡¡can¡¡store¡¡text¡¡in¡¡a¡¡multitude¡¡of¡¡different¡¡¡¡

formats¡£¡¡The¡¡standardized¡¡length¡¡is¡¡due¡¡to¡¡a¡¡standard¡¡called¡¡Unicode¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Consider¡¡the¡¡character¡¡a¡£¡¡Philosophically£»¡¡how¡¡do¡¡you¡¡know¡¡that¡¡an¡¡a¡¡is¡¡an¡¡a£¿¡¡For¡¡humans£»¡¡¡¡

that¡¯s¡¡easy¡¡because¡¡our¡¡brains¡¡are¡¡trained¡¡to¡¡recognize¡¡the¡¡curve¡¡and¡¡look¡¡of¡¡an¡¡a¡£¡¡Now¡¡look¡¡at¡¡¡¡

the¡¡Russian¡¡letter¡¡shown¡¡in¡¡Figure¡¡3¡­10¡£¡¡



Figure¡¡3¡­10¡£¡¡A¡¡Russian¡¡letter¡¡



¡¡¡¡¡¡¡¡¡¡¡¡What¡¡letter¡¡does¡¡Figure¡¡3¡­10¡¡show£¿¡¡It¡¡looks¡¡like¡¡an¡¡H£»¡¡right£¿¡¡But¡¡paring¡¡it¡¡to¡¡the¡¡English¡¡¡¡

language£»¡¡it¡¡is¡¡an¡¡N¡£¡¡The¡¡Russian¡¡language¡¡has¡¡its¡¡own¡¡set¡¡of¡¡letters£»¡¡and¡¡someone¡¡has¡¡deter

mined¡¡that¡¡a¡¡Russian¡¡H¡¡is¡¡an¡¡English¡¡N¡£¡¡Figure¡¡3¡­11¡¡is¡¡a¡¡mapping¡¡of¡¡the¡¡Russian¡¡letters¡¡to¡¡the¡¡¡¡

English¡¡letters¡£¡¡



Figure¡¡3¡­11¡£¡¡Mapping¡¡of¡¡Russian¡¡letters¡¡to¡¡English¡¡letters¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡90¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

68¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡3¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡IN¡¡G¡¡¡¡¡¡AB¡¡OU¡¡T¡¡¡¡¡¡ST¡¡R¡¡I¡¡N¡¡G¡¡¡¡¡¡M¡¡A¡¡N¡¡I¡¡P¡¡U¡¡L¡¡AT¡¡IO¡¡N¡¡S¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If¡¡I¡¡were¡¡learning¡¡Russian£»¡¡I¡¡would¡¡want¡¡the¡¡mapping¡¡provided¡¡in¡¡Figure¡¡3¡­11¡£¡¡The¡¡mapping¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡gives¡¡me¡¡an¡¡idea¡¡of¡¡what¡¡each¡¡letter¡¡in¡¡Russian¡¡represents¡£¡¡You¡¡could¡¡think¡¡of¡¡Figure¡¡3¡­11¡¡as¡¡a¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lookup¡¡table¡£¡¡The¡¡puter¡¡has¡¡the¡¡same¡¡sort¡¡of¡¡need£»¡¡because¡¡a¡¡puter¡¡does¡¡not¡¡under

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡stand¡¡letters¡£¡¡A¡¡puter¡¡understands¡¡only¡¡numbers¡¡and¡¡thus¡¡uses¡¡lookup¡¡tables¡¡that¡¡map¡¡a¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡set¡¡of¡¡letters¡¡to¡¡a¡¡set¡¡of¡¡numbers¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡There¡¡are¡¡many¡¡lookup¡¡tables£»¡¡such¡¡as¡¡American¡¡Standard¡¡Code¡¡for¡¡Information¡¡Inter

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡change¡¡£¨ASCII£©¡£¡¡For¡¡example£»¡¡using¡¡ASCII£»¡¡the¡¡letter¡¡a¡¡maps¡¡to¡¡the¡¡number¡¡97¡£¡¡The¡¡problem¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡with¡¡ASCII¡¡is¡¡that¡¡it¡¡works¡¡well¡¡for¡¡English£»¡¡but¡¡works¡¡horribly¡¡for¡¡other¡¡languages¡£¡¡ASCII¡¡was¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡extended¡¡to¡¡deal¡¡with¡¡Western¡¡European¡¡languages£»¡¡but¡¡still¡¡fails¡¡for¡¡languages¡¡such¡¡as¡¡Chinese£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Russian£»¡¡and¡¡Arabic¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡solution¡¡chosen¡¡by¡¡¡¡is¡¡Unicode¡£¡¡Unicode¡¡is¡¡the¡¡definition¡¡of¡¡a¡¡set¡¡of¡¡lookup¡¡tables¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡that¡¡map¡¡to¡¡letters¡¡for¡¡all¡¡of¡¡the¡¡languages¡¡of¡¡the¡¡world¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡For¡¡the¡¡most¡¡part£»¡¡you¡¡will¡¡not¡¡have¡¡to¡¡concern¡¡yourself¡¡with¡¡the¡¡Unicode£»¡¡because¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡manages¡¡everything¡¡transparently¡£¡¡This¡¡was¡¡not¡¡the¡¡case¡¡many¡¡years¡¡ago£»¡¡when¡¡programmers¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡had¡¡to¡¡manage¡¡the¡¡lookup¡¡tables¡¡themselves¡£¡¡So¡¡consider¡¡yourself¡¡lucky¡¡that¡¡you¡¡did¡¡not¡¡expe

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡rience¡¡this¡¡pain¡¡in¡¡developing¡¡multilingual¡¡applications¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dealing¡¡with¡¡Languages¡¡and¡¡Cultures¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Managing¡¡strings¡¡in¡¡¡¡does¡¡not¡¡stop¡¡with¡¡Unicode¡£¡¡¡¡is¡¡very¡¡innovative¡¡in¡¡that¡¡it¡¡under

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡stands¡¡concepts¡¡such¡¡as¡¡culture¡¡and¡¡language£»¡¡which¡¡are¡¡a¡¡reflection¡¡of¡¡how¡¡humans¡¡speak¡¡and¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡live¡£¡¡The¡¡ideas¡¡of¡¡culture¡¡and¡¡language¡¡do¡¡not¡¡exist¡¡in¡¡other¡¡programming¡¡environments¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Consider¡¡Switzerland¡¡as¡¡an¡¡example¡£¡¡Throughout¡¡Switzerland£»¡¡there¡¡are¡¡mountains¡¡that¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡happen¡¡to¡¡separate¡¡four¡¡individual¡¡languages£º¡¡German£»¡¡Italian£»¡¡Romansch£»¡¡and¡¡French¡£¡¡Even¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡with¡¡the¡¡four¡¡languages£»¡¡the¡¡Swiss¡¡all¡¡trade¡¡the¡¡same¡¡currency¡¡and¡¡write¡¡numbers¡¡the¡¡same¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡way¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡In¡¡previous¡¡programming¡¡environments£»¡¡the¡¡language¡¡would¡¡be¡¡tied¡¡to¡¡a¡¡particular¡¡country¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡This¡¡works¡¡fine¡¡for¡¡France£»¡¡Germany£»¡¡and¡¡the¡¡United¡¡States£»¡¡but¡¡fails¡¡miserably¡¡for¡¡Canada£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Switzerland£»¡¡Belgium£»¡¡and¡¡India¡£¡¡You¡¡need¡¡to¡¡separate¡¡language¡¡from¡¡culture£»¡¡because¡¡multiple¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡languages¡¡are¡¡used¡¡in¡¡different¡¡cultures¡£¡¡For¡¡example£»¡¡Italian¡¡is¡¡spoken¡¡in¡¡Switzerland¡¡and¡¡Italy¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡French¡¡is¡¡spoken¡¡in¡¡France£»¡¡Switzerland£»¡¡Luxembourg£»¡¡and¡¡Canada¡£¡¡German¡¡is¡¡spoken¡¡in¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Germany£»¡¡Switzerland£»¡¡and¡¡Austria¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Setting¡¡Culture¡¡and¡¡Language¡¡in¡¡Windows¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡Windows¡¡operating¡¡system¡¡allows¡¡you¡¡to¡¡set¡¡the¡¡culture¡¡and¡¡language¡¡of¡¡your¡¡puter£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡regardless¡¡of¡¡the¡¡language¡¡in¡¡which¡¡Windows¡¡is¡¡operating¡£¡¡Figure¡¡3¡­12¡¡shows¡¡an¡¡example¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡example¡¡in¡¡Figure¡¡3¡­12¡¡is¡¡running¡¡a¡¡German¡¡version¡¡of¡¡Windows¡¡in¡¡Switzerland¡£¡¡The¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡language¡¡is¡¡English£»¡¡and¡¡the¡¡culture¡¡is¡¡Canada¡£¡¡It¡¡would¡¡seem¡¡that¡¡Windows¡¡would¡¡get¡¡confused£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡but¡¡in¡¡fact£»¡¡if¡¡you¡¡write¡¡your¡¡¡¡application¡¡properly£»¡¡multilanguage¡¡support¡¡is¡¡simple¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡91¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡3¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡AR¡¡N¡¡IN¡¡G¡¡¡¡¡¡AB¡¡O¡¡U¡¡T¡¡¡¡¡¡ST¡¡R¡¡I¡¡N¡¡G¡¡¡¡¡¡M¡¡A¡¡N¡¡I¡¡PU¡¡L¡¡A¡¡TI¡¡O¡¡N¡¡S¡¡¡¡69¡¡



Figure¡¡3¡­12¡£¡¡Setting¡¡the¡¡culture¡¡and¡¡language¡¡in¡¡Windows¡¡



Parsing¡¡and¡¡Processing¡¡Numbers¡¡



The¡¡culture¡¡and¡¡country¡¡bee¡¡important¡¡when¡¡interacting¡¡with¡¡numbers¡¡and¡¡dates¡¡that¡¡¡¡

are¡¡stored¡¡as¡¡strings¡£¡¡Imagine¡¡retrieving¡¡a¡¡string¡¡buffer¡¡with¡¡an¡¡embedded¡¡number¡¡and¡¡then¡¡¡¡

attempting¡¡to¡¡perform¡¡an¡¡addition£»¡¡as¡¡illustrated¡¡by¡¡Figure¡¡3¡­13¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Variables¡¡a¡¡and¡¡b¡¡are¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡assigned¡¡buffers¡¡that¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡represent¡¡numbers¡¡



¡¡Dim¡¡a¡¡As¡¡String¡¡=¡¡¡¨1¡¨¡¡

Dim¡¡b¡¡As¡¡String¡¡=¡¡¡¨2¡¨¡¡

Dim¡¡c¡¡As¡¡String¡¡=¡¡a¡¡£«¡¡b¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Adding¡¡two¡¡buffers¡¡is¡¡a¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡concatenation¡¡operation¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Variable¡¡c¡¡contains¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡value¡¡12¡¡



Figure¡¡3¡­13¡£¡¡Performing¡¡arithmetic¡¡on¡¡numbers¡¡represented¡¡as¡¡strings¡¡can¡¡lead¡¡to¡¡unexpected¡¡results¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡92¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

70¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡3¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡IN¡¡G¡¡¡¡¡¡AB¡¡OU¡¡T¡¡¡¡¡¡ST¡¡R¡¡I¡¡N¡¡G¡¡¡¡¡¡M¡¡A¡¡N¡¡I¡¡P¡¡U¡¡L¡¡AT¡¡IO¡¡N¡¡S¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Adding¡¡numbers¡¡is¡¡performing¡¡a¡¡mathematical¡¡operation¡£¡¡When¡¡the¡¡add¡¡operation¡¡is¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡performed¡¡on¡¡strings£»¡¡it¡¡always¡¡results¡¡in¡¡a¡¡buffer¡¡concatenation¡£¡¡The¡¡add¡¡operation¡¡is¡¡a¡¡very¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡simple¡¡way¡¡to¡¡concatenate¡¡string¡¡buffers¡¡together¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡However£»¡¡concatenation¡¡is¡¡not¡¡the¡¡aim¡¡of¡¡the¡¡example¡£¡¡The¡¡aim¡¡is¡¡to¡¡treat¡¡the¡¡strings¡¡as¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡numbers¡¡and¡¡then¡¡add¡¡the¡¡numbers¡¡so¡¡that¡¡c¡¡contains¡¡the¡¡value¡¡¡¡3¡¡£¨1¡¡£«¡¡2¡¡=¡¡3£©¡£¡¡The¡¡rewritten¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡version¡¡of¡¡the¡¡example¡¡is¡¡shown¡¡in¡¡Figure¡¡3¡­14¡£¡¡This¡¡code¡¡parses¡¡a¡¡string¡¡into¡¡an¡¡integer¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Integer¡¡is¡¡a¡¡value¡¡type£»¡¡but¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡recognizes¡¡the¡¡methods¡¡associated¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡with¡¡the¡¡value¡¡types¡¡that¡¡can¡¡be¡¡used¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡to¡¡parse¡¡string¡¡buffers¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡a¡¡As¡¡Integer¡¡=¡¡Integer¡£Parse£¨¡¨1¡¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡b¡¡As¡¡Integer¡¡=¡¡Integer¡£Parse£¨¡¨2¡¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡c¡¡As¡¡Integer¡¡=¡¡a¡¡£«¡¡b¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Variable¡¡c¡¡contains¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Variables¡¡a¡¡and¡¡b¡¡are¡¡assigned¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡value¡¡3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡values¡¡that¡¡represent¡¡the¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡parsed¡¡string¡¡buffers¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡3¡­14¡£¡¡Parsing¡¡strings¡¡into¡¡integers¡¡before¡¡doing¡¡the¡¡arithmetic¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡type¡¡Integer¡¡has¡¡a¡¡¡¡Parse£¨£©¡¡method¡¡that¡¡can¡¡be¡¡used¡¡to¡¡turn¡¡a¡¡string¡¡into¡¡an¡¡integer¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡parsing¡¡works¡¡only¡¡if¡¡the¡¡buffer¡¡is¡¡a¡¡valid¡¡number¡£¡¡If¡¡the¡¡buffer¡¡contains¡¡letters¡¡or¡¡an¡¡invalid¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡number£»¡¡an¡¡error¡¡will¡¡be¡¡generated¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If¡¡the¡¡code¡¡can¡¡cope¡¡with¡¡a¡¡failed¡¡string¡¡conversion£»¡¡the¡¡solution¡¡used¡¡by¡¡the¡¡parsing¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡routines¡¡is¡¡to¡¡generate¡¡an¡¡exception¡¡that¡¡a¡¡program¡¡could¡¡process¡£¡¡Alternatively£»¡¡a¡¡fail¡­safe¡¡way¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡to¡¡parse¡¡a¡¡number¡¡is¡¡to¡¡use¡¡TryParse£¨£©£»¡¡as¡¡in¡¡the¡¡following¡¡example¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡value¡¡As¡¡Integer¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If¡¡Integer¡£TryParse£¨¡¨1¡¨£»¡¡value£©¡¡Then¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡£¡¡¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡If¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡TryParse£¨£©¡¡method¡¡does¡¡not¡¡return¡¡an¡¡integer¡¡value£»¡¡but¡¡instead¡¡returns¡¡a¡¡¡¡Boolean¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡flag£»¡¡indicating¡¡whether¡¡the¡¡buffer¡¡could¡¡be¡¡parsed¡£¡¡If¡¡the¡¡return¡¡value¡¡is¡¡True£»¡¡then¡¡the¡¡buffer¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡could¡¡be¡¡parsed£»¡¡and¡¡the¡¡result¡¡is¡¡stored¡¡in¡¡the¡¡parameter¡¡value¡£¡¡You¡¡can¡¡parse¡¡other¡¡number¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡types¡¡using¡¡the¡¡same¡¡techniqu

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨2£© ²È£¨2£©

Äã¿ÉÄÜϲ»¶µÄ