°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
attempt¡¡to¡¡find¡¡the¡¡quickest¡¡or¡¡shortest¡¡way¡£¡¡In¡¡the¡¡abstract¡¡sense£»¡¡the¡¡search¡¡algorithm¡¡the¡¡GPS¡¡¡¡
makers¡¡apply¡¡is¡¡identical¡¡to¡¡the¡¡search¡¡algorithm¡¡that¡¡we¡¡are¡¡going¡¡to¡¡develop¡¡in¡¡this¡¡chapter¡£¡¡
Implementing¡¡User¡Defined¡¡Types¡¡
The¡¡data¡¡structure¡¡on¡¡which¡¡the¡¡algorithm¡¡will¡¡operate¡¡is¡¡a¡¡user¡defined¡¡type¡£¡¡In¡¡the¡¡examples¡¡¡¡
up¡¡to¡¡this¡¡point£»¡¡we¡¡have¡¡been¡¡using¡¡types¡¡like¡¡Double¡¡and¡¡String£»¡¡which¡¡are¡¡CLR¡provided¡¡¡¡
types¡£¡¡For¡¡the¡¡example¡¡in¡¡this¡¡chapter£»¡¡we¡¡will¡¡define¡¡our¡¡own¡¡type£»¡¡which¡¡we¡¡will¡¡use¡¡to¡¡repre
sent¡¡a¡¡node¡¡in¡¡the¡¡tree¡£¡¡
Declaring¡¡Structures¡¡and¡¡Classes¡¡
A¡¡user¡defined¡¡type¡¡can¡¡be¡¡implemented¡¡in¡¡one¡¡of¡¡two¡¡ways£º¡¡as¡¡a¡¡structure¡¡or¡¡as¡¡a¡¡class¡£¡¡An¡¡¡¡
example¡¡of¡¡each¡¡is¡¡shown¡¡in¡¡Figure¡¡4¡3¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡A¡¡type¡¡declaration¡¡requireA¡¡type¡¡declaration¡¡requiress¡¡a¡¡¡¡a¡¡CCLRLR¡¡In¡¡Visual¡¡Basic£»¡¡an¡¡appropriate¡¡
¡¡¡¡¡¡¡¡conconsstruct¡¡£¨e¡£g¡££»¡¡truct¡¡£¨e¡£g¡£¡¡SStructure¡¡or¡¡tructure¡¡or¡¡CClalassss£©¡¡and£©¡¡and¡¡keyword¡¡£¨e¡£g¡££»¡¡Class£©¡¡opens¡¡a¡¡block¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡an¡¡identifier¡¡£¨e¡£g¡££»¡¡Node£©an¡¡identifier¡¡£¨e¡£g¡£¡¡Node£©¡¡To¡¡close¡¡the¡¡block£»¡¡the¡¡keyword¡¡is¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bined¡¡with¡¡the¡¡End¡¡identifier¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Everything¡¡in¡¡between¡¡belongs¡¡to¡¡
¡¡Structure¡¡Node¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class¡¡Node¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡keyword¡£¡¡So£»¡¡if¡¡the¡¡keyword¡¡is¡¡
¡¡End¡¡Structure¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class£»¡¡everything¡¡within¡¡the¡¡block¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡belongs¡¡to¡¡the¡¡creation¡¡of¡¡a¡¡class¡¡
¡¡¡¡¡¡Structure¡¡is¡¡used¡¡to¡¡define¡¡
¡¡¡¡¡¡a¡¡custom¡¡value¡¡type¡¡£¨e¡£g¡££»¡¡
¡¡¡¡¡¡¡¡Double£©£»¡¡which¡¡has¡¡some¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class¡¡is¡¡used¡¡to¡¡define¡¡a¡¡custom¡¡reference¡¡type¡¡
¡¡¡¡restrictions¡¡and¡¡is¡¡used¡¡only¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨e¡£g¡££»¡¡String£©£»¡¡which¡¡is¡¡the¡¡most¡¡mon¡¡type¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡in¡¡certain¡¡situations¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡used¡¡for¡¡development¡¡
Figure¡¡4¡3¡£¡¡Choices¡¡for¡¡implementing¡¡the¡¡Node¡¡custom¡¡type¡¡
¡¡¡¡¡¡¡¡¡¡¡¡As¡¡shown¡¡in¡¡Figure¡¡4¡3£»¡¡you¡¡can¡¡choose¡¡to¡¡create¡¡a¡¡user¡defined¡¡type¡¡as¡¡a¡¡value¡¡type¡¡¡¡
£¨Structure£©¡¡or¡¡reference¡¡type¡¡£¨Class£©¡¡type¡£¡¡For¡¡the¡¡most¡¡part£»¡¡developers¡¡use¡¡a¡¡reference¡¡type£»¡¡¡¡
because¡¡it¡¡has¡¡fewer¡¡constraints¡¡and¡¡is¡¡easiest¡¡to¡¡use¡¡in¡¡a¡¡general¡¡context¡£¡¡A¡¡value¡¡type¡¡has¡¡some¡¡¡¡
constraints¡¡due¡¡its¡¡behavior¡¡of¡¡storing¡¡everything¡¡on¡¡the¡¡stack£»¡¡as¡¡discussed¡¡in¡¡the¡¡following¡¡¡¡
sections¡£¡¡
Value¡¡Type¡¡Constraints¡¡
The¡¡constraints¡¡of¡¡using¡¡a¡¡value¡¡type¡¡relate¡¡to¡¡the¡¡fact¡¡that¡¡data¡¡is¡¡copied¡£¡¡This¡¡has¡¡an¡¡impact¡¡on¡¡¡¡
what¡¡happens¡¡when¡¡you¡¡embed¡¡reference¡¡types¡¡in¡¡value¡¡types¡¡and¡¡use¡¡value¡¡types¡¡as¡¡parame
ters¡¡to¡¡methods¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡104¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
82¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡IN¡¡G¡¡¡¡¡¡AB¡¡OU¡¡T¡¡¡¡¡¡D¡¡AT¡¡A¡¡¡¡S¡¡TR¡¡U¡¡CT¡¡U¡¡R¡¡E¡¡S£»¡¡¡¡¡¡DE¡¡CI¡¡SI¡¡ON¡¡S£»¡¡¡¡¡¡A¡¡N¡¡D¡¡¡¡¡¡L¡¡O¡¡OP¡¡S¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡Effects¡¡of¡¡Copying¡¡Data¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡When¡¡one¡¡¡¡value¡¡type¡¡is¡¡assigned¡¡to¡¡another¡¡value¡¡type£»¡¡the¡¡contents¡¡of¡¡the¡¡value¡¡types¡¡are¡¡copied¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡To¡¡see¡¡this¡¡in¡¡action£»¡¡consider¡¡the¡¡declarations¡¡in¡¡Figure¡¡4¡4¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Declaration¡¡of¡¡the¡¡identifier¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Custom¡¡value¡¡type¡¡declaration¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡value¡¡is¡¡inside¡¡the¡¡block£»¡¡so¡¡it¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡belongs¡¡to¡¡the¡¡custom¡¡type¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Structure¡¡MyValueType¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡value¡¡As¡¡Integer¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Declaration¡¡of¡¡value¡¡is¡¡associated¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Structure¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡with¡¡a¡¡type¡¡identifier¡¡£¨Integer£©¡¡and¡¡a¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class¡¡MyReferenceType¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡scope¡¡identifier¡¡£¨Public£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡value¡¡As¡¡Integer¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Custom¡¡reference¡¡type¡¡declaration¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Both¡¡custom¡¡types¡¡declare¡¡a¡¡variable¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡that¡¡is¡¡a¡¡value¡¡type£»¡¡which¡¡is¡¡called¡¡a¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡data¡¡member¡¡because¡¡it¡¡belongs¡¡to¡¡the¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡custom¡¡type¡¡declaration¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡4¡4¡£¡¡Declaring¡¡custom¡¡types¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡When¡¡declaring¡¡user¡defined¡¡types£»¡¡the¡¡data¡¡members¡¡and¡¡methods¡¡are¡¡declared¡¡inside¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡block¡¡of¡¡code¡£¡¡You¡¡can¡¡think¡¡of¡¡the¡¡declaration¡¡as¡¡the¡¡writing¡¡on¡¡the¡¡outside¡¡of¡¡the¡¡box£»¡¡and¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡anything¡¡in¡¡the¡¡block¡¡of¡¡code¡¡as¡¡the¡¡contents¡¡of¡¡the¡¡box¡£¡¡The¡¡custom¡¡types¡¡£¨MyValueType¡¡and¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MyReferenceType£©¡¡as¡¡declared¡¡in¡¡Figure¡¡4¡4¡¡do¡¡not¡¡have¡¡a¡¡scope¡¡identifier¡£¡¡Think¡¡of¡¡a¡¡scope¡¡identifier¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡as¡¡defining¡¡who¡¡has¡¡access¡¡to¡¡your¡¡pockets¡¡and¡¡wallet¡£¡¡In¡¡the¡¡case¡¡of¡¡the¡¡types¡¡in¡¡the¡¡example£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡scope¡¡is¡¡like¡¡saying¡¡that¡¡your¡¡spouse¡¡is¡¡allowed¡¡to¡¡peek¡¡into¡¡your¡¡wallet£»¡¡but¡¡strangers¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cannot¡£¡¡In¡¡other¡¡words£»¡¡the¡¡types¡¡cannot¡¡be¡¡used¡¡outside¡¡their¡¡own¡¡namespace¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If¡¡the¡¡Public¡¡keyword¡¡had¡¡been¡¡in¡¡front¡¡of¡¡the¡¡type¡¡identifier£»¡¡then¡¡the¡¡user¡defined¡¡type¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡would¡¡be¡¡exposed¡¡like¡¡a¡¡wallet¡¡that¡¡is¡¡allowed¡¡to¡¡be¡¡peeked¡¡into¡¡by¡¡the¡¡general¡¡public¡£¡¡This¡¡means¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡types¡¡can¡¡be¡¡used¡¡by¡¡other¡¡code¡£¡¡In¡¡the¡¡case¡¡of¡¡the¡¡wallet£»¡¡it¡¯s¡¡a¡¡bad¡¡idea¡¡to¡¡have¡¡unfettered¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡public¡¡scope£»¡¡but¡¡sometimes¡¡public¡¡scope¡¡is¡¡desirable¡¡when¡¡you¡¡are¡¡able¡¡to¡¡control¡¡its¡¡access¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡And¡¡you¡¡do¡¡this¡¡every¡¡time¡¡you¡¡pay¡¡for¡¡something¡¡by¡¡handing¡¡a¡¡credit¡¡card¡¡to¡¡the¡¡cashier¡£¡¡In¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡that¡¡case£»¡¡you¡¡are¡¡publicly¡¡exposing¡¡parts¡¡of¡¡your¡¡wallet¡¡under¡¡your¡¡supervision¡£¡¡In¡¡code¡¡terms£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡this¡¡means¡¡making¡¡your¡¡types¡¡public£»¡¡but¡¡not¡¡necessarily¡¡making¡¡the¡¡data¡¡members¡¡public¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Next£»¡¡consider¡¡the¡¡code¡¡in¡¡Figure¡¡4¡5¡£¡¡It¡¡instantiates¡¡MyValueType¡¡and¡¡assigns¡¡it¡¡to¡¡another¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡variable¡¡of¡¡the¡¡same¡¡type¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡example¡¡in¡¡Figure¡¡4¡5¡¡illustrates¡¡what¡¡happens¡¡to¡¡two¡¡variables¡¡when¡¡one¡¡is¡¡instanti
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ated¡¡and¡¡assigned¡¡to¡¡the¡¡other£»¡¡and¡¡then¡¡the¡¡other¡¡is¡¡modified¡£¡¡You¡¡want¡¡to¡¡understand¡¡how¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡each¡¡data¡¡type¡¡is¡¡modified¡¡when¡¡an¡¡interaction¡¡with¡¡another¡¡type¡¡occurs¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡105¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡D¡¡AT¡¡A¡¡¡¡S¡¡TR¡¡U¡¡CT¡¡U¡¡R¡¡E¡¡S£»¡¡¡¡¡¡DE¡¡CI¡¡SI¡¡ON¡¡S£»¡¡¡¡¡¡A¡¡N¡¡D¡¡¡¡¡¡L¡¡O¡¡OP¡¡S¡¡83¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡To¡¡create¡¡a¡¡valid¡¡instance¡¡
¡¡¡¡¡¡¡¡Variable¡¡var¡¡is¡¡declared£»¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡associated¡¡with¡¡the¡¡
¡¡¡¡¡¡but¡¡a¡¡declaration¡¡does¡¡not¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡variable¡¡var£»¡¡you¡¡need¡¡to¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Another¡¡way¡¡to¡¡associate¡¡a¡¡
¡¡¡¡¡¡¡¡¡¡¡¡imply¡¡a¡¡valid¡¡instance¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡allocate¡¡the¡¡object¡¡using¡¡¡¡¡¡¡¡¡¡¡¡¡¡valid¡¡instance¡¡with¡¡a¡¡variable¡¡is¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡New¡¡keyword¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡to¡¡assign¡¡the¡¡variable¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨e¡£g¡££»¡¡copiedVar£©¡¡from¡¡another¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡variable¡¡that¡¡contains¡¡a¡¡valid¡¡
¡¡Dim¡¡var¡¡As¡¡MyValueType¡¡=¡¡New¡¡MyValueType£¨£©¡¡
¡¡Dim¡¡copiedVar¡¡As¡¡MyValueType¡¡=¡¡var¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡instance¡¡£¨e¡£g¡££»¡¡var£©¡¡
¡¡Console¡£WriteLine£¨¡¨var¡¡value=¡¨¡¡&¡¡var¡£value¡¡&¡¡_¡¡
¡¡¡¡¡¡¡¡¡¡¡¨¡¡copiedVar¡¡value=¡¨¡¡&¡¡copiedVar¡£value£©¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡When¡¡an¡¡instance¡¡is¡¡allocated£»¡¡the¡¡data¡¡
¡¡var¡£value¡¡=¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡members¡¡are¡¡assigned¡¡their¡¡appropriate¡¡
¡¡Console¡£WriteLine£¨¡¨var¡¡value=¡¨¡¡&¡¡var¡£value¡¡&¡¡_¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡default¡¡value£»¡¡which¡¡is¡¡0¡¡for¡¡Integer¡¡and¡¡most¡¡
¡¡¡¡¡¡¡¡¡¡¡¨¡¡copiedVar¡¡value=¡¨¡¡&¡¡copiedVar¡£value£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡numbers¡£¡¡For¡¡strings£»¡¡it¡¡is¡¡an¡¡empty¡¡buffer¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡These¡¡lines¡¡display¡¡the¡¡empty¡¡values¡£¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡value¡¡of¡¡var¡£value¡¡is¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡modified¡¡from¡¡0¡¡to¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡contents¡¡of¡¡var¡¡and¡¡copiedVar¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡are¡¡displayed¡¡again¡¡to¡¡show¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡which¡¡variable