VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ)-µÚ9²¿·Ö
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡Solution¡¡Explorer¡¡changes¡¡to¡¡show¡¡the¡¡additional¡¡project¡¡and¡¡now¡¡also¡¡shows¡¡the¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡solution¡£¡¡The¡¡work¡¡area¡¡displays¡¡the¡¡source¡¡code¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Notice¡¡the¡¡simplicity¡¡of¡¡the¡¡console¡¡application¡£¡¡It¡¡contains¡¡a¡¡single£»¡¡plain¡vanilla¡¡source¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡code¡¡file£»¡¡called¡¡Module1¡£vb¡£¡¡Console¡¡applications¡¡typically¡¡do¡¡not¡¡have¡¡any¡¡specialized¡¡group
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ings¡¡and¡¡do¡¡not¡¡have¡¡any¡¡events¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡35¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡H¡¡AP¡¡TE¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡ST¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡G¡¡O£¡¡¡13¡¡
Making¡¡the¡¡Console¡¡Application¡¡Say¡¡Hello¡¡
To¡¡make¡¡the¡¡console¡¡application¡¡do¡¡something£»¡¡you¡¡need¡¡to¡¡add¡¡some¡¡source¡¡code¡¡to¡¡the¡¡¡¡
Main£¨£©¡¡method£»¡¡as¡¡follows£º¡¡
Module¡¡Module1¡¡
¡¡¡¡¡¡¡¡Sub¡¡Main£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£ReadKey£¨£©¡¡
¡¡¡¡¡¡¡¡End¡¡Sub¡¡
End¡¡Module¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡bolded¡¡line¡¡writes¡¡the¡¡text¡¡¡°hello£»¡¡world¡±¡¡to¡¡the¡¡console¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡If¡¡you¡¡tried¡¡to¡¡run¡¡the¡¡console¡¡application¡¡by¡¡pressing¡¡Ctrl£«F5£»¡¡you¡¡would¡¡instead¡¡cause¡¡¡¡
the¡¡Windows¡¡application£»¡¡WindowsApplication£»¡¡to¡¡run¡£¡¡Let¡¯s¡¡change¡¡that¡¡next¡£¡¡¡¡
Setting¡¡the¡¡Startup¡¡Project¡¡
To¡¡execute¡¡the¡¡console¡¡application£»¡¡you¡¡need¡¡to¡¡set¡¡the¡¡console¡¡application¡¡as¡¡the¡¡startup¡¡project¡£¡¡¡¡
Did¡¡you¡¡notice¡¡how¡¡the¡¡WindowsApplication¡¡project¡¡is¡¡in¡¡bold¡¡in¡¡the¡¡Solution¡¡Explorer£¿¡¡That¡¡¡¡
means¡¡WindowsApplication¡¡is¡¡the¡¡startup¡¡project¡£¡¡Whenever¡¡you¡¡run¡¡or¡¡debug¡¡an¡¡application£»¡¡¡¡
the¡¡startup¡¡project¡¡is¡¡executed¡¡or¡¡debugged¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡To¡¡switch¡¡the¡¡startup¡¡project¡¡to¡¡ConsoleApplication£»¡¡right¡click¡¡the¡¡ConsoleApplication¡¡¡¡
project¡¡and¡¡select¡¡Set¡¡As¡¡StartUp¡¡Project¡£¡¡ConsoleApplication¡¡will¡¡now¡¡be¡¡in¡¡bold£»¡¡meaning¡¡it¡¡is¡¡¡¡
the¡¡startup¡¡project¡¡of¡¡the¡¡ThreeExamples¡¡solution¡£¡¡
Running¡¡the¡¡Console¡¡Project¡¡
With¡¡ConsoleApplication¡¡set¡¡as¡¡the¡¡startup¡¡project£»¡¡you¡¡can¡¡now¡¡press¡¡Ctrl£«F5¡¡to¡¡run¡¡the¡¡¡¡
console¡¡application¡£¡¡The¡¡output¡¡is¡¡as¡¡follows£º¡¡
hello£»¡¡world¡¡
¡¡¡¡¡¡¡¡¡¡Executing¡¡the¡¡console¡¡application¡¡does¡¡not¡¡generate¡¡a¡¡window£»¡¡as¡¡you¡¡saw¡¡with¡¡the¡¡Windows¡¡¡¡
application¡£¡¡Instead£»¡¡a¡¡mand¡¡prompt¡¡is¡¡started¡¡with¡¡ConsoleApplication¡¡as¡¡the¡¡application¡¡¡¡
to¡¡execute¡£¡¡Executing¡¡that¡¡application¡¡generates¡¡the¡¡text¡¡¡°hello£»¡¡world¡£¡±¡¡You¡¡will¡¡also¡¡see¡¡that¡¡¡¡
you¡¡can¡¡press¡¡any¡¡key¡¡to¡¡close¡¡the¡¡mand¡¡prompt¡¡window¡£¡¡Visual¡¡Basic¡¡Express¡¡automati
cally¡¡generated¡¡the¡¡code¡¡to¡¡show¡¡this¡¡output¡¡and¡¡execute¡¡this¡¡action¡£¡¡
¡¡¡¡¡¡¡¡¡¡In¡¡general£»¡¡the¡¡console¡¡application¡¡is¡¡limited£»¡¡but¡¡it¡¯s¡¡an¡¡easy¡¡way¡¡to¡¡run¡¡specific¡¡tasks¡£¡¡¡¡
Now¡¡let¡¯s¡¡move¡¡on¡¡to¡¡the¡¡next¡¡example¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡36¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
14¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡ST¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡G¡¡O¡¡£¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Creating¡¡the¡¡Class¡¡Library¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡third¡¡example¡¡in¡¡this¡¡chapter¡¡is¡¡not¡¡a¡¡¡¡application£»¡¡rather£»¡¡it¡¡is¡¡a¡¡shareable¡¡piece¡¡of¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡functionality£»¡¡typically¡¡called¡¡a¡¡¡¡class¡¡library¡£¡¡Windows¡¡applications¡¡and¡¡console¡¡applications¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡are¡¡programs¡¡that¡¡you¡¡can¡¡execute¡¡from¡¡a¡¡mand¡¡prompt¡¡or¡¡Windows¡¡Explorer¡£¡¡A¡¡class¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡library¡¡cannot¡¡be¡¡executed¡¡by¡¡the¡¡user£»¡¡but¡¡needs¡¡to¡¡be¡¡accessed¡¡by¡¡a¡¡Windows¡¡application¡¡or¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡console¡¡application¡£¡¡It¡¡is¡¡a¡¡convenient¡¡place¡¡to¡¡put¡¡code¡¡that¡¡can¡¡be¡¡used¡¡by¡¡more¡¡than¡¡one¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡application¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Adding¡¡a¡¡Class¡¡Library¡¡Project¡¡to¡¡the¡¡Solution¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡We¡¡will¡¡now¡¡create¡¡a¡¡class¡¡library¡¡for¡¡the¡¡Windows¡¡application¡¡and¡¡console¡¡application¡¡to¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡share¡£¡¡Follow¡¡these¡¡steps¡¡to¡¡add¡¡the¡¡new¡¡project¡¡to¡¡the¡¡ThreeExamples¡¡solution£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1¡£¡¡¡¡Right¡click¡¡the¡¡solution¡¡name£»¡¡ThreeExamples£»¡¡in¡¡the¡¡Solution¡¡Explorer¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡£¡¡¡¡Select¡¡Add¡¡¡¡New¡¡Project¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡£¡¡¡¡Select¡¡Class¡¡Library¡¡and¡¡change¡¡the¡¡name¡¡to¡¡ClassLibrary¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡resulting¡¡solution¡¡project¡¡should¡¡look¡¡like¡¡Figure¡¡1¡8¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡1¡8¡£¡¡¡¡Updated¡¡solution¡¡structure¡¡that¡¡contains¡¡three¡¡projects¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡added¡¡ClassLibrary¡¡project¡¡has¡¡a¡¡single¡¡file¡¡called¡¡Class1¡£vb£»¡¡which¡¡is¡¡a¡¡plain¡vanilla¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡source¡¡code¡¡file¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡37¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡H¡¡AP¡¡TE¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡ST¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡G¡¡O£¡¡¡15¡¡
Moving¡¡Functionality¡¡
Now¡¡we¡¡will¡¡move¡¡the¡¡code¡¡used¡¡to¡¡say¡¡¡°hello£»¡¡world¡±¡¡from¡¡ConsoleApplication¡¡to¡¡¡¡
ClassLibrary¡£¡¡Add¡¡the¡¡code¡¡to¡¡Class1¡£vb¡¡as¡¡follows¡¡£¨the¡¡bolded¡¡code£©£º¡¡
Public¡¡Class¡¡Class1¡¡
¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Sub¡¡HelloWorld£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡
¡¡¡¡¡¡¡¡End¡¡Sub¡¡
End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡modified¡¡code¡¡contains¡¡a¡¡method¡¡called¡¡HelloWorld£¨£©¡£¡¡When¡¡called£»¡¡this¡¡method¡¡will¡¡¡¡
output¡¡the¡¡text¡¡¡°hello£»¡¡world¡£¡±¡¡As¡¡mentioned¡¡earlier¡¡in¡¡the¡¡chapter£»¡¡a¡¡method¡¡is¡¡a¡¡set¡¡of¡¡instruc
tions¡¡that¡¡carry¡¡out¡¡a¡¡task¡£¡¡Methods¡¡are¡¡discussed¡¡in¡¡more¡¡detail¡¡in¡¡Chapter¡¡2¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡In¡¡order¡¡for¡¡applications¡¡to¡¡actually¡¡share¡¡the¡¡code¡¡that¡¯s¡¡in¡¡a¡¡class¡¡library£»¡¡you¡¡must¡¡make¡¡¡¡
the¡¡projects¡¡aware¡¡of¡¡each¡¡other¡¯s¡¡existence¡£¡¡You¡¡do¡¡that¡¡through¡¡references¡£¡¡
Defining¡¡References¡¡
To¡¡make¡¡one¡¡project¡¡aware¡¡of¡¡definitions¡¡in¡¡another¡¡project£»¡¡you¡¡need¡¡to¡¡define¡¡a¡¡reference¡£¡¡The¡¡¡¡
idea¡¡behind¡¡a¡¡reference¡¡is¡¡to¡¡indicate¡¡that¡¡a¡¡project¡¡knows¡¡about¡¡another¡¡piece¡¡of¡¡functionality¡£¡¡
¡öNote¡¡¡¡The¡¡project¡¡only¡¡knows¡¡about¡¡the¡¡functionality¡¡that¡¡has¡¡been¡¡declared¡¡as¡¡being¡¡public¡£¡¡Public¡¡function
ality£»¡¡or¡¡what¡¡Visual¡¡Basic¡¡programmers¡¡call¡¡public¡¡scope£»¡¡is¡¡when¡¡you¡¡declare¡¡a¡¡type¡¡with¡¡the¡¡Public¡¡keyword¡£¡¡¡¡
You¡¡will¡¡learn¡¡about¡¡public¡¡and¡¡other¡¡scopes¡¡throughout¡¡this¡¡book¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡To¡¡make¡¡ConsoleApplication¡¡aware¡¡of¡¡the¡¡functionality¡¡in¡¡the¡¡ClassLibrary¡¡project£»¡¡you¡¡¡¡
need¡¡to¡¡set¡¡a¡¡physical¡¡reference£»¡¡as¡¡follows£º¡¡
¡¡¡¡¡¡¡¡¡¡1¡£¡¡¡¡In¡¡the¡¡Solution¡¡Explorer£»¡¡click¡¡ConsoleApplication¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡2¡£¡¡¡¡Right¡click¡¡and¡¡select¡¡Add¡¡Reference¡£¡¡
¡¡¡¡¡¡¡¡¡¡3¡£¡¡¡¡Click¡¡the¡¡Projects¡¡tab¡£¡¡
¡¡¡¡¡¡¡¡¡¡4¡£¡¡¡¡Select¡¡ClassLibrary£»¡¡and¡¡then¡¡click¡¡OK¡£¡¡ClassLibrary¡¡will¡¡be¡¡added¡¡to¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ConsoleApplication¡¯s¡¡references¡£¡¡
¡¡¡¡¡¡¡¡¡¡Once¡¡the¡¡reference¡¡has¡¡been¡¡assigned£»¡¡ConsoleApplication¡¡can¡¡call¡¡the¡¡functionality¡¡in¡¡¡¡
ClassLibrary¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡To¡¡know¡¡which¡¡references¡¡your¡¡application¡¡or¡¡class¡¡library¡¡has£»¡¡you¡¡need¡¡to¡¡look¡¡in¡¡the¡¡¡¡
project¡¡settings¡£¡¡To¡¡do¡¡so£»¡¡right¡click¡¡the¡¡project¡¡name£»¡¡ConsoleApplication£»¡¡in¡¡the¡¡Solution¡¡¡¡
Explorer¡¡and¡¡select¡¡Properties¡£¡¡In¡¡the¡¡Properties¡¡window£»¡¡select¡¡the¡¡References¡¡tab£»¡¡as¡¡shown¡¡¡¡
in¡¡Figure¡¡1¡9¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡38¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
16¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡ST¡¡E¡¡A¡¡DY¡¡£»¡¡¡¡¡¡G¡¡O¡¡£¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡1¡9¡£¡¡References¡¡used¡¡by¡¡the¡¡Visual¡¡Basic¡¡project¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Calling¡¡Class¡¡Library¡¡Functionality¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Now¡¡we¡¡need¡¡to¡¡change¡¡ConsoleApplication¡¡so¡¡that¡¡it¡¡calls¡¡the¡¡function¡¡in¡¡ClassLibrary¡£¡¡Modify¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡Module1¡£vb¡¡file¡¡in¡¡ConsoleApplication¡¡as¡¡follows£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Module¡¡Module1¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Sub¡¡Main£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ClassLibrary¡£Class1¡£HelloWorld£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£ReadKey£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Module¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Run¡¡ConsoleApplication¡¡by¡¡pressing¡¡Ctrl£«F5¡£¡¡A¡¡mand¡¡prompt¡¡window¡¡should¡¡appear¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡and¡¡generate¡¡the¡¡¡°hello£»¡¡world¡±¡¡text¡¡twice¡£¡¡The¡¡first¡¡¡°hello£»¡¡world¡±¡¡is¡¡generated¡¡by¡¡the¡¡code¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨£©¡£¡¡Calling¡¡the¡¡function¡¡ClassLibrary¡£Class1¡£HelloWorld£¨£©¡¡generates¡¡the¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡second¡¡¡°hello£»¡¡world¡£¡±¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡USING¡¡REFERENCE¡¡SHORTHAND¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ClassLibrary¡£Class1¡£HelloWorld£¨£©¡¡is¡¡the¡¡longhand¡¡way¡¡to¡¡use¡¡a¡¡reference¡£¡¡If¡¡we¡¡were¡¡to¡¡use¡¡long
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hand¡¡for¡¡the¡¡Console¡£WriteLine£¨£©¡¡call£»¡¡we¡¡would¡¡write¡¡System¡£Console¡£WriteLine£¨£©£»¡¡because¡¡the¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨£©¡¡method¡¡is¡¡defined¡¡in¡¡the¡¡System¡¡reference¡£¡¡However£»¡¡Visual¡¡Basic¡¡Express¡¡includes¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡¡¡System¡¡reference¡¡by¡¡default£»¡¡so¡¡we¡¡don¡¯t¡¡need¡¡to¡¡do¡¡it¡¡this¡¡way¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡39¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡H¡¡AP¡¡TE¡¡R¡¡¡¡¡¡1¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡R¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡ST¡¡E¡¡AD¡¡Y¡¡£»¡¡¡¡¡¡G¡¡O£¡¡¡17¡¡
¡¡¡¡¡¡To¡¡use¡¡shorthand¡¡for¡¡the¡¡ClassLibrary¡¡call£»¡¡we¡¡would¡¡include¡¡an¡¡¡¡Imports¡¡line¡¡at¡¡the¡¡beginning¡¡of¡¡¡¡
¡¡¡¡¡¡Module1¡£vb¡¡in¡¡ConsoleApplication¡¡and¡¡change¡¡the¡¡call¡¡to¡¡Class1¡¯s¡¡HelloWorld£¨£©¡¡method£º¡¡
¡¡¡¡¡¡Imports¡¡ClassLibrary¡¡
¡¡¡¡¡¡Module¡¡Module1¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Sub¡¡Main£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨hello£»¡¡world¡¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class1¡£HelloWorld£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Console¡£ReadKey£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡
¡¡¡¡¡¡End¡¡Module¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡But¡¡shorthand¡¡like¡¡this¡¡has¡¡a¡¡downside¡£¡¡What¡¡if¡¡we¡¡had¡¡many¡¡references£»¡¡each¡¡containing¡¡a¡¡class¡¡called¡¡¡¡
¡¡¡¡¡¡Class1£¿¡¡In¡¡this¡¡case£»¡¡Visual¡¡Basic¡¡Express¡¡wouldn¡¯t¡¡know¡¡which¡¡Class1¡¡to¡¡use¡¡without¡¡the¡¡help¡¡of¡¡longhand¡£¡¡¡¡
¡¡¡¡¡¡Granted£»¡¡you¡¡are¡¡not¡¡likely¡¡to¡¡name¡¡multiple¡¡classes¡¡Class1£»¡¡but¡¡even¡¡sensible¡¡names¡¡can¡¡be¡¡duplicated¡¡in¡¡a¡¡¡¡
¡¡¡¡¡¡collection¡¡of¡¡references¡£¡¡And¡¡if¡¡you¡¡are¡¡using¡¡someone¡¡else¡¯s¡¡code¡¡as¡¡a¡¡reference£»¡¡the¡¡possibility¡¡of¡¡duplicate¡¡¡¡
¡¡¡¡¡¡names¡¡bees¡¡higher¡£¡¡Therefore£»¡¡you¡¯re¡¡better¡¡off¡¡using¡¡longhand¡¡in¡¡this¡¡case¡£¡¡
Using¡¡Variables¡¡and¡¡Constants¡¡
One¡¡of¡¡the¡¡core¡¡concepts¡¡in¡¡a¡¡Visual¡¡Basic¡¡program¡¡is¡¡to¡¡use¡¡variables¡£¡¡Think¡¡of¡¡a¡¡variable¡¡as¡¡a¡¡¡¡
block¡¡of¡¡memory¡¡where¡¡you¡¡can¡¡store¡¡data¡¡for¡¡later¡¡use¡£¡¡This¡¡allows¡¡you¡¡to¡¡pass¡¡data¡¡around¡¡¡¡
within¡¡your¡¡program¡¡very¡¡easily¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡In¡¡our¡¡ClassLibrary¡¡project£»¡¡it¡¡would¡¡make¡¡life¡¡easier¡¡if¡¡we¡¡could¡¡define¡¡the¡¡message¡¡to¡¡¡¡
display¡¡at¡¡the¡¡beginning¡¡of¡¡the¡¡method¡£¡¡That¡¡way£»¡¡if¡¡we¡¡decide¡¡to¡¡change¡¡the¡¡message£»¡¡we¡¡can¡¡get¡¡at¡¡¡¡
it¡¡much¡¡more¡¡easily¡£¡¡As¡¡it¡¡stands£»¡¡if¡¡we¡¡were¡¡to¡¡add¡¡more¡¡code¡¡before¡¡the¡¡Console¡£WriteLine£¨£©¡¡call£»¡¡¡¡
we¡¡would¡¡need¡¡to¡¡scroll¡¡through¡¡the¡¡text¡¡to¡¡find¡¡the¡¡message¡¡to¡¡change¡£¡¡A¡¡variable¡¡is¡¡perfect¡¡for¡¡¡¡
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£¨£©¡¡
¡¡