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

µÚ10²¿·Ö

VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ)-µÚ10²¿·Ö

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

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




this£»¡¡as¡¡we¡¡can¡¡define¡¡some¡¡data¡¡£¨the¡¡message¡¡to¡¡print£©£»¡¡and¡¡then¡¡use¡¡it¡¡later¡¡in¡¡our¡¡program¡£¡¡



Public¡¡Class¡¡Class1¡¡

¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡HelloWorld£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡message¡¡As¡¡String¡¡=¡¡¡¨hello£»¡¡world¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨message£©¡¡

¡¡¡¡¡¡¡¡End¡¡Sub¡¡

End¡¡Class¡¡



¡¡¡¡¡¡¡¡¡¡¡¡Here£»¡¡we¡¯ve¡¡defined¡¡a¡¡variable¡¡called¡¡message¡¡of¡¡type¡¡¡¡String¡¡£¨a¡¡¡¡String¡¡is¡¡a¡¡length¡¡of¡¡text£©¡£¡¡¡¡

We¡¡can¡¡then¡¡refer¡¡to¡¡the¡¡message¡¡variable¡¡later¡¡when¡¡we¡¡want¡¡to¡¡place¡¡its¡¡contents¡¡into¡¡the¡¡code¡£¡¡¡¡

In¡¡the¡¡example£»¡¡we¡¡place¡¡its¡¡contents¡¡into¡¡the¡¡Console¡£WriteLine£¨£©¡¡call£»¡¡which¡¡works¡¡as¡¡before¡£¡¡¡¡

This¡¡time£»¡¡however£»¡¡we¡¡have¡¡set¡¡the¡¡message¡¡to¡¡display¡¡in¡¡a¡¡separate¡¡statement¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡This¡¡is¡¡very¡¡useful¡¡for¡¡us£»¡¡but¡¡there¡¡is¡¡more¡¡to¡¡variables¡£¡¡They¡¡have¡¡something¡¡that¡¡is¡¡called¡¡¡¡

scope¡£¡¡The¡¡message¡¡variable¡¡has¡¡method¡­level¡¡scope£»¡¡which¡¡means¡¡it¡¡is¡¡available¡¡only¡¡in¡¡the¡¡¡¡

method¡¡in¡¡which¡¡it¡¡is¡¡defined¡£¡¡Consider¡¡this¡¡code£º¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡40¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

18¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡ST¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡G¡¡O¡¡£¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡HelloWorld£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡message¡¡As¡¡String¡¡=¡¡¡¨hello£»¡¡world¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨message£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡DisplayeMessageText£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨message£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡DisplayMessageText£¨£©¡¡method¡¡prints¡¡two¡¡lines¡¡of¡¡text¡¡to¡¡tell¡¡us¡¡what¡¡the¡¡message¡¡text¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡should¡¡be¡£¡¡However£»¡¡this¡¡doesn¡¯t¡¡pile£»¡¡because¡¡the¡¡piler¡¡knows¡¡that¡¡the¡¡variable¡¡message¡¡is¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡not¡¡available¡¡to¡¡the¡¡DisplayMessageText£¨£©¡¡method¡¡because¡¡of¡¡its¡¡method¡­level¡¡scope¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡To¡¡fix¡¡this£»¡¡we¡¡need¡¡to¡¡give¡¡message¡¡class¡­level¡¡scope¡¡by¡¡moving¡¡it¡¡to¡¡the¡¡beginning¡¡of¡¡the¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡class¡¡definition¡¡£¨as¡¡it¡¡is¡¡used¡¡by¡¡methods¡¡marked¡¡Shared£»¡¡it¡¡must¡¡also¡¡be¡¡Shared£©£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Class¡¡Class1¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Shared¡¡Dim¡¡message¡¡As¡¡String¡¡=¡¡¡¨hello£»¡¡world¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡HelloWorld£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨message£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡DisplayeMessageText£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨message£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Now¡¡the¡¡variable¡¡message¡¡is¡¡shared¡¡by¡¡all¡¡the¡¡methods¡¡of¡¡Class1¡£¡¡You¡¯ll¡¡learn¡¡much¡¡more¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡about¡¡method¡­level¡¡and¡¡class¡­level¡¡scopes£»¡¡as¡¡well¡¡as¡¡the¡¡Public¡¡and¡¡Shared¡¡keywords£»¡¡throughout¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡this¡¡book¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Sharing¡¡a¡¡variable¡¡among¡¡methods¡¡of¡¡a¡¡class¡¡can¡¡be¡¡useful£»¡¡but¡¡it¡¯s¡¡sometimes¡¡not¡¡wise¡¡to¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡do¡¡this¡£¡¡That¡¯s¡¡because¡¡methods¡¡can¡¡change¡¡variables¡¡as¡¡they¡¡carry¡¡out¡¡their¡¡tasks£»¡¡which¡¡can¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡produce¡¡unpredictable¡¡results¡¡further¡¡down¡¡the¡¡line¡£¡¡We¡¡can¡¡lock¡¡the¡¡value¡¡by¡¡using¡¡a¡¡constant¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡instead¡¡of¡¡a¡¡variable¡£¡¡The¡¡Const¡¡keyword¡¡denotes¡¡the¡¡constant£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Class¡¡Class1¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Const¡¡MESSAGE¡¡As¡¡String¡¡=¡¡¡¨hello£»¡¡world¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡HelloWorld£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨MESSAGE£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡DisplayeMessageText£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨MESSAGE£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡41¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡H¡¡AP¡¡TE¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡ST¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡G¡¡O£¡¡¡19¡¡



¡¡¡¡¡¡¡¡¡¡Constant¡¡names¡¡are¡¡usually¡¡all¡¡uppercase¡£¡¡The¡¡contents¡¡of¡¡a¡¡constant¡¡cannot¡¡be¡¡changed¡¡¡¡

at¡¡any¡¡point¡£¡¡The¡¡following¡¡would¡¡not¡¡pile£»¡¡for¡¡instance¡£¡¡



Public¡¡Class¡¡Class1¡¡

¡¡¡¡¡¡¡¡Const¡¡MESSAGE¡¡As¡¡String¡¡=¡¡¡¨hello£»¡¡world¡¨¡¡



¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡DisplayeMessageText£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MESSAGE¡¡=¡¡¡¨another¡¡text¡¡that¡¡cannot¡¡be¡¡assigned¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨MESSAGE£©¡¡

¡¡¡¡¡¡¡¡End¡¡Sub¡¡

End¡¡Class¡¡



¡¡¡¡¡¡¡¡¡¡Now¡¡that¡¡you¡¯ve¡¡worked¡¡through¡¡this¡¡chapter¡¯s¡¡examples£»¡¡let¡¯s¡¡talk¡¡a¡¡bit¡¡about¡¡how¡¡your¡¡¡¡

Visual¡¡Basic¡¡code¡¡in¡¡Visual¡¡Basic¡¡Express¡¡actually¡¡turns¡¡into¡¡a¡¡program¡¡that¡¡can¡¡run¡¡on¡¡an¡¡oper

ating¡¡system¡¡like¡¡Windows¡£¡¡



Understanding¡¡How¡¡the¡¡¡¡Framework¡¡Works¡¡



When¡¡you¡¡write¡¡Visual¡¡Basic¡¡source¡¡code£»¡¡you¡¡are¡¡creating¡¡instructions¡¡for¡¡the¡¡program¡¡to¡¡¡¡

follow¡£¡¡The¡¡instructions¡¡are¡¡defined¡¡using¡¡the¡¡Visual¡¡Basic¡¡programming¡¡language£»¡¡which¡¡is¡¡¡¡

useful¡¡for¡¡you£»¡¡but¡¡not¡¡useful¡¡for¡¡the¡¡puter¡£¡¡The¡¡puter¡¡does¡¡not¡¡understand¡¡pieces¡¡of¡¡¡¡

text£»¡¡it¡¡understands¡¡ones¡¡and¡¡zeros¡£¡¡To¡¡feed¡¡instructions¡¡to¡¡the¡¡puter£»¡¡developers¡¡have¡¡¡¡

created¡¡a¡¡higher¡­level¡¡instruction¡¡mechanism¡¡that¡¡converts¡¡your¡¡instructions¡¡into¡¡something¡¡¡¡

that¡¡the¡¡puter¡¡can¡¡understand¡£¡¡The¡¡conversion¡¡utility¡¡is¡¡called¡¡a¡¡piler¡£¡¡

¡¡¡¡¡¡¡¡¡¡The¡¡twist¡¡with¡¡£»¡¡in¡¡contrast¡¡to¡¡traditional¡¡programming¡¡languages¡¡such¡¡as¡¡C£«£«¡¡and¡¡C£»¡¡¡¡

is¡¡that¡¡the¡¡piler¡¡generates¡¡a¡¡binary¡­based¡¡intermediate¡¡language¡¡called¡¡mon¡¡Interme

diate¡¡Language¡¡£¨CIL£©¡£¡¡The¡¡¡¡Framework¡¡then¡¡converts¡¡the¡¡CIL¡¡into¡¡the¡¡binary¡¡instructions¡¡¡¡

required¡¡by¡¡the¡¡puter¡¯s¡¡processor¡£¡¡

¡¡¡¡¡¡¡¡¡¡You¡¡might¡¡think¡¡converting¡¡the¡¡source¡¡code¡¡into¡¡an¡¡intermediate¡¡language¡¡is¡¡inefficient£»¡¡¡¡

but¡¡it¡¡is¡¡a¡¡good¡¡approach¡£¡¡Let¡¯s¡¡use¡¡an¡¡analogy¡£¡¡There¡¡are¡¡dogs¡¡that¡¡learn¡¡quickly¡¡and¡¡those¡¡that¡¡¡¡

take¡¡a¡¡while¡¡to¡¡learn¡£¡¡For¡¡example£»¡¡German¡¡shepherds¡¡tend¡¡to¡¡learn¡¡quickly¡¡and¡¡don¡¯t¡¡require¡¡¡¡

much¡¡repetition¡¡of¡¡lessons¡£¡¡On¡¡the¡¡other¡¡hand£»¡¡bullmastiffs¡¡need¡¡quite¡¡a¡¡bit¡¡of¡¡patience£»¡¡as¡¡they¡¡¡¡

tend¡¡to¡¡be¡¡stubborn¡£¡¡Now¡¡imagine¡¡being¡¡a¡¡trainer¡¡who¡¡has¡¡created¡¡instructions¡¡on¡¡how¡¡to¡¡teach¡¡¡¡

things¡¡specifically¡¡geared¡¡toward¡¡the¡¡bullmastiff¡£¡¡If¡¡those¡¡same¡¡instructions¡¡are¡¡used¡¡on¡¡the¡¡¡¡

German¡¡shepherd£»¡¡you¡¡end¡¡up¡¡boring¡¡the¡¡German¡¡shepherd¡¡and¡¡possibly¡¡failing¡¡to¡¡teach¡¡that¡¡¡¡

dog¡¡what¡¡you¡¡wanted¡¡him¡¡to¡¡learn¡£¡¡

¡¡¡¡¡¡¡¡¡¡The¡¡problem¡¡with¡¡the¡¡instructions¡¡is¡¡that¡¡they¡¡are¡¡specifically¡¡tuned¡¡for¡¡a¡¡single¡¡dog¡£¡¡If¡¡you¡¡¡¡

want¡¡to¡¡teach¡¡both¡¡dogs£»¡¡you¡¡need¡¡two¡¡sets¡¡of¡¡instructions¡£¡¡To¡¡solve¡¡this¡¡problem£»¡¡the¡¡instruc

tions¡¡should¡¡be¡¡general£»¡¡with¡¡added¡¡interpretation¡¡notes¡¡saying¡¡things¡¡like£»¡¡¡°If¡¡dog¡¡is¡¡stubborn£»¡¡¡¡

repeat¡£¡±¡¡

¡¡¡¡¡¡¡¡¡¡Converting¡¡this¡¡into¡¡puter¡­speak£»¡¡the¡¡two¡¡sets¡¡of¡¡instructions¡¡are¡¡for¡¡two¡¡different¡¡¡¡

processors¡¡or¡¡processors¡¡used¡¡in¡¡specific¡¡situations¡£¡¡For¡¡example£»¡¡there¡¡are¡¡server¡¡puters¡¡¡¡

and¡¡client¡¡puters¡£¡¡Each¡¡type¡¡of¡¡puter¡¡has¡¡different¡¡requirements¡£¡¡A¡¡server¡¡puter¡¡¡¡

needs¡¡to¡¡process¡¡data¡¡as¡¡quickly¡¡as¡¡possible£»¡¡whereas¡¡a¡¡client¡¡puter¡¡needs¡¡to¡¡show¡¡data¡¡on¡¡¡¡

the¡¡screen¡¡as¡¡quickly¡¡as¡¡possible¡£¡¡There¡¡are¡¡pilers¡¡for¡¡each¡¡context£»¡¡but¡¡to¡¡have¡¡the¡¡developer¡¡¡¡

create¡¡multiple¡¡distributions¡¡with¡¡different¡¡piler£¨s£©¡¡or¡¡setting£¨s£©¡¡is¡¡inefficient¡£¡¡The¡¡solution¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡42¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

20¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡ST¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡G¡¡O¡¡£¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡is¡¡to¡¡create¡¡a¡¡set¡¡of¡¡instructions¡¡that¡¡are¡¡general£»¡¡but¡¡have¡¡associated¡¡interpretation¡¡notes¡£¡¡The¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Framework¡¡then¡¡applies¡¡these¡¡instructions¡¡using¡¡the¡¡interpretation¡¡notes¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡¡¡Framework¡¡piles¡¡to¡¡instructions¡¡£¨CIL£©¡¡that¡¡are¡¡then¡¡converted¡¡into¡¡processor

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡specific¡¡instructions¡¡using¡¡notes¡¡embedded¡¡in¡¡the¡¡¡¡Framework¡£¡¡The¡¡¡¡architecture¡¡is¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡illustrated¡¡in¡¡Figure¡¡1¡­10¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡1¡­10¡£¡¡¡¡architecture¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡In¡¡Figure¡¡1¡­10£»¡¡Visual¡¡Basic¡¡Express¡¡is¡¡responsible¡¡for¡¡converting¡¡the¡¡Visual¡¡Basic¡¡source¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡code¡¡into¡¡a¡¡CIL¡¡package¡£¡¡The¡¡converted¡¡CIL¡¡package¡¡is¡¡a¡¡binary¡¡file¡¡that£»¡¡when¡¡executed£»¡¡requires¡¡a¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mon¡¡language¡¡runtime¡¡£¨CLR£©¡£¡¡Without¡¡a¡¡CLR¡¡installed¡¡on¡¡your¡¡puter£»¡¡you¡¡cannot¡¡run¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡CIL¡¡package¡£¡¡When¡¡you¡¡installed¡¡Visual¡¡Basic¡¡Express£»¡¡you¡¡installed¡¡the¡¡CLR¡¡in¡¡the¡¡back

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ground¡¡as¡¡a¡¡separate¡¡package¡£¡¡Visual¡¡Basic¡¡Express¡¡is¡¡an¡¡application¡¡that¡¡allows¡¡you¡¡to¡¡develop¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡for¡¡the¡¡CLR£»¡¡but¡¡it¡¡also¡¡uses¡¡the¡¡CLR¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡CLR¡¡has¡¡the¡¡ability¡¡to¡¡transform¡¡your¡¡instructions¡¡in¡¡the¡¡CIL¡¡package¡¡into¡¡something¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡that¡¡the¡¡operating¡¡system¡¡and¡¡processor¡¡can¡¡understand¡£¡¡If¡¡you¡¡look¡¡at¡¡the¡¡syntax¡¡of¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡patible¡¡languages£»¡¡such¡¡as¡¡Visual¡¡Basic£»¡¡C#£»¡¡and¡¡Eiffel£»¡¡you¡¡will¡¡see¡¡that¡¡they¡¡are¡¡not¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡similar¡£¡¡Yet¡¡the¡¡CLR¡¡can¡¡process¡¡the¡¡CIL¡¡package¡¡generated¡¡by¡¡one¡¡of¡¡those¡¡languages¡¡because¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a¡¡¡¡piler£»¡¡regardless¡¡of¡¡programming¡¡language£»¡¡generates¡¡a¡¡set¡¡of¡¡instructions¡¡mon¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡to¡¡the¡¡CLR¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡43¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡H¡¡AP¡¡TE¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡ST¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡G¡¡O£¡¡¡21¡¡



¡¡¡¡¡¡¡¡¡¡When¡¡using¡¡the¡¡¡¡Framework£»¡¡you¡¡are¡¡writing¡¡for¡¡the¡¡CLR£»¡¡and¡¡everything¡¡you¡¡do¡¡must¡¡¡¡

be¡¡understood¡¡by¡¡the¡¡CLR¡£¡¡Generally¡¡speaking£»¡¡this¡¡is¡¡not¡¡a¡¡problem¡¡if¡¡you¡¡are¡¡writing¡¡code¡¡in¡¡¡¡

Visual¡¡Basic¡£¡¡The¡¡following¡¡are¡¡some¡¡advantages¡¡of¡¡writing¡¡code¡¡targeted¡¡to¡¡the¡¡CLR£º¡¡



¡¡¡¡¡¡¡¡¡¡Memory¡¡and¡¡garbage¡¡collection£º¡¡Programs¡¡use¡¡resources¡¡such¡¡as¡¡memory£»¡¡files£»¡¡and¡¡so¡¡on¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡In¡¡traditional¡¡programming¡¡languages£»¡¡such¡¡as¡¡C¡¡and¡¡C£«£«£»¡¡you¡¡are¡¡expected¡¡to¡¡open¡¡and¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡close¡¡a¡¡file£»¡¡and¡¡allocate¡¡and¡¡free¡¡memory¡£¡¡With¡¡£»¡¡you¡¡don¡¯t¡¡need¡¡to¡¡worry¡¡about¡¡closing¡¡¡¡

¡¡¡¡¡¡¡¡¡¡files¡¡or¡¡freeing¡¡memory¡£¡¡The¡¡CLR¡¡knows¡¡when¡¡a¡¡file¡¡or¡¡memory¡¡is¡¡not¡¡in¡¡use¡¡and¡¡will¡¡auto

¡¡¡¡¡¡¡¡¡¡matically¡¡close¡¡the¡¡file¡¡or¡¡free¡¡the¡¡memory¡£¡¡¡¡



¡öNote¡¡¡¡Some¡¡programmers¡¡may¡¡think¡¡that¡¡the¡¡CLR¡¡promotes¡¡sloppy¡¡programming¡¡behavior£»¡¡as¡¡you¡¡don¡¯t¡¡¡¡

need¡¡to¡¡clean¡¡up¡¡after¡¡yourself¡£¡¡However£»¡¡practice¡¡has¡¡shown¡¡that¡¡for¡¡any¡¡plex¡¡application£»¡¡you¡¡will¡¡waste¡¡¡¡

time¡¡and¡¡resources¡¡figuring¡¡out¡¡where¡¡memory¡¡has¡¡not¡¡been¡¡freed¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡Custom¡¡optimization£º¡¡Some¡¡programs¡¡need¡¡to¡¡process¡¡large¡¡amounts¡¡of¡¡data£»¡¡such¡¡as¡¡that¡¡¡¡

¡¡¡¡¡¡¡¡¡¡from¡¡a¡¡database£»¡¡or¡¡display¡¡a¡¡plex¡¡user¡¡interface¡£¡¡The¡¡performance¡¡focus¡¡for¡¡each¡¡is¡¡on¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡a¡¡different¡¡piece¡¡of¡¡code¡£¡¡The¡¡CLR¡¡has¡¡the¡¡ability¡¡to¡¡optimize¡¡the¡¡CIL¡¡package¡¡and¡¡decide¡¡¡¡

¡¡¡¡¡¡¡¡¡¡how¡¡to¡¡run¡¡it¡¡as¡¡quickly¡¡and¡¡efficiently¡¡as¡¡possible¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡mon¡¡Type¡¡System¡¡£¨CTS£©£º¡¡A¡¡string¡¡in¡¡Visual¡¡B

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

Äã¿ÉÄÜϲ»¶µÄ