VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ)-µÚ118²¿·Ö
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡WearsHats¡¡As¡¡Boolean¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡RunsSlowly¡¡As¡¡Boolean¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡In¡¡this¡¡definition£»¡¡each¡¡attribute¡¡of¡¡PersonWithAttributes¡¡is¡¡its¡¡own¡¡data¡¡member¡£¡¡Another¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡way¡¡to¡¡achieve¡¡the¡¡same¡¡effect¡¡is¡¡to¡¡consider¡¡each¡¡attribute¡¡as¡¡its¡¡own¡¡binary¡¡flag¡¡that¡¡is¡¡encoded¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡into¡¡PersonWithAttributes¡£¡¡The¡¡class¡¡would¡¡be¡¡rewritten¡¡as¡¡follows£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Class¡¡PersonWithAttributes¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Attributes¡¡As¡¡Integer¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡In¡¡the¡¡rewritten¡¡example£»¡¡the¡¡Boolean¡¡attributes¡¡are¡¡encoded¡¡into¡¡the¡¡data¡¡member¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Attributes¡¡using¡¡bitwise¡¡operators¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡To¡¡encode¡¡a¡¡flag¡¡in¡¡a¡¡number¡¡means¡¡to¡¡tweak¡¡the¡¡individual¡¡binary¡¡bits¡¡of¡¡a¡¡number¡£¡¡To¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡access¡¡the¡¡individual¡¡bits£»¡¡you¡¡need¡¡to¡¡create¡¡constant¡¡numbers¡¡that¡¡are¡¡a¡¡power¡¡of¡¡2¡£¡¡We¡¡use¡¡a¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡441¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡6¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡O¡¡TH¡¡E¡¡R¡¡¡¡¡¡V¡¡IS¡¡U¡¡AL¡¡¡¡¡¡B¡¡A¡¡SI¡¡C¡¡¡¡T¡¡E¡¡C¡¡HN¡¡IQ¡¡U¡¡E¡¡S¡¡419¡¡
power¡¡of¡¡2¡¡convention¡¡because¡¡binary¡¡is¡¡a¡¡counting¡¡system¡¡based¡¡on¡¡the¡¡power¡¡of¡¡2¡£¡¡Thus£»¡¡the¡¡¡¡
three¡¡Boolean¡¡data¡¡members¡¡are¡¡converted¡¡to¡¡constants£º¡¡
Const¡¡isTall¡¡As¡¡Integer¡¡=¡¡1¡¡
Const¡¡wearsHats¡¡As¡¡Integer¡¡=¡¡2¡¡
Const¡¡runsSlow¡¡As¡¡Integer¡¡=¡¡4¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Now¡¡you¡¡could¡¡create¡¡a¡¡person¡¡that¡¡is¡¡tall¡¡and¡¡runs¡¡slowly£»¡¡like¡¡this£º¡¡
Dim¡¡person¡¡As¡¡PersonWithAttributes¡¡=¡¡New¡¡PersonWithAttributes£¨£©¡¡
person¡£Attributes¡¡=¡¡isTall¡¡Or¡¡runsSlow¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡variable¡¡person¡£Attributes¡¡is¡¡assigned¡¡the¡¡operations¡¡of¡¡isTall¡¡and¡¡runsSlow¡£¡¡So¡¡if¡¡¡¡
isTall¡¡is¡¡0001£»¡¡and¡¡runsSlow¡¡is¡¡0100£»¡¡taking¡¡the¡¡bitwise¡¡OR¡¡£¨Or£©¡¡of¡¡the¡¡two¡¡values¡¡results¡¡in¡¡0101¡£¡¡
¡¡¡¡¡¡¡¡¡¡A¡¡bitwise¡¡OR¡¡is¡¡when¡¡you¡¡pare¡¡two¡¡values£»¡¡and¡¡if¡¡either¡¡value¡¡is¡¡nonzero£»¡¡then¡¡the¡¡¡¡
answer¡¡is¡¡nonzero¡£¡¡If¡¡you¡¡were¡¡to¡¡convert¡¡the¡¡binary¡¡number¡¡into¡¡a¡¡decimal¡¡number£»¡¡you¡¡would¡¡¡¡
get¡¡the¡¡value¡¡of¡¡5¡£¡¡You¡¡could¡¡verify¡¡that¡¡the¡¡person¡¡isTall¡¡like¡¡this£º¡¡
If¡¡£¨person¡£Attributes¡¡And¡¡isTall£©¡¡¡¡0¡¡Then¡¡
¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨Person¡¡is¡¡tall¡¨£©¡¡
Else¡¡¡¡
¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨Person¡¡is¡¡not¡¡tall¡¨£©¡¡
End¡¡If¡¡
¡¡¡¡¡¡¡¡¡¡A¡¡bitwise¡¡shift¡¡is¡¡the¡¡shifting¡¡of¡¡the¡¡bits¡¡to¡¡the¡¡left¡¡or¡¡to¡¡the¡¡right¡¡by¡¡the¡¡number¡¡of¡¡places¡¡indi
cated¡¡by¡¡the¡¡shift¡£¡¡The¡¡following¡¡code¡¡demonstrates¡¡shifting¡¡the¡¡bits¡¡two¡¡places¡¡to¡¡the¡¡left¡¡£¨¡·¡¡2¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡result¡¡is¡¡2£»¡¡which¡¡has¡¡the¡¡binary¡¡value¡¡10¡£¡¡
¡¡¡¡¡¡¡¡¡¡For¡¡the¡¡most¡¡part£»¡¡you¡¡probably¡¡will¡¡not¡¡use¡¡the¡¡binary¡¡shift¡¡operators¡£¡¡Unless¡¡you¡¡are¡¡dealing¡¡¡¡
with¡¡hardware¡related¡¡programming¡¡£¨such¡¡as¡¡GUI¡¡interactions£©£»¡¡whatever¡¡you¡¡can¡¡do¡¡with¡¡¡¡
flags¡¡can¡¡be¡¡replicated¡¡using¡¡a¡¡bination¡¡of¡¡Boolean¡¡types¡¡and¡¡structures¡£¡¡However£»¡¡when¡¡¡¡
you¡¡do¡¡encounter¡¡bitwise¡¡operators£»¡¡you¡¡will¡¡recognize¡¡what¡¡they¡¡are¡¡doing¡£¡¡¡¡
Modulus¡¡
The¡¡modulus¡¡operator¡¡£¨Mod£©¡¡is¡¡very¡¡useful¡¡when¡¡you¡¡want¡¡to¡¡perform¡¡division¡¡operations¡¡and¡¡¡¡
need¡¡to¡¡know¡¡how¡¡much¡¡is¡¡left¡¡over¡£¡¡For¡¡example£»¡¡the¡¡following¡¡calculation¡¡yields¡¡a¡¡value¡¡of¡¡3¡£¡¡
Dim¡¡a¡¡As¡¡Integer¡¡=¡¡17¡¡/¡¡5¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡442¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
420¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡6¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡O¡¡TH¡¡E¡¡R¡¡¡¡¡¡V¡¡IS¡¡U¡¡AL¡¡¡¡¡¡B¡¡A¡¡SI¡¡C¡¡¡¡TE¡¡C¡¡H¡¡N¡¡IQ¡¡U¡¡E¡¡S¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Yet¡¡because¡¡it¡¡is¡¡an¡¡integer¡¡division£»¡¡you¡¡don¡¯t¡¡know¡¡if¡¡the¡¡value¡¡is¡¡evenly¡¡divided¡¡by¡¡5¡£¡¡The¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡following¡¡calculation¡¡lets¡¡you¡¡figure¡¡out¡¡the¡¡remainder¡¡for¡¡the¡¡division¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡remainder¡¡As¡¡Integer¡¡=¡¡17¡¡Mod¡¡5¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Increment¡¡and¡¡Decrement¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡increment¡¡£¨£«=£©¡¡and¡¡decrement¡¡£¨¡¡¡=£©¡¡operators¡¡are¡¡useful¡¡in¡¡place¡¡of¡¡the¡¡addition¡¡and¡¡subtrac
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tion¡¡operators¡£¡¡Visual¡¡Basic¡¡also¡¡has¡¡the¡¡*=¡¡and¡¡/=¡¡operators£»¡¡which¡¡you¡¡can¡¡use¡¡in¡¡place¡¡of¡¡the¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡multiplication¡¡and¡¡division¡¡operators¡£¡¡The¡¡idea¡¡behind¡¡these¡¡operators¡¡is¡¡to¡¡perform¡¡an¡¡operation¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡on¡¡the¡¡variable¡¡itself¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Let¡¯s¡¡say¡¡you¡¡execute¡¡this¡¡code£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡a¡¡As¡¡Integer¡¡=¡¡2¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a¡¡£«=¡¡1¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Then¡¡after¡¡the¡¡increment¡¡operation£»¡¡the¡¡variable¡¡a¡¡will¡¡have¡¡a¡¡value¡¡of¡¡3¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Overloading¡¡Operators¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Suppose¡¡you¡¡want¡¡to¡¡implement¡¡a¡¡special¡¡type£»¡¡such¡¡as¡¡a¡¡plex¡¡number¡¡type£»¡¡and¡¡want¡¡to¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡support¡¡the¡¡£«¡¡sign¡£¡¡To¡¡do¡¡so£»¡¡you¡¡would¡¡need¡¡to¡¡implement¡¡the¡¡£«¡¡operator£»¡¡which£»¡¡in¡¡turn£»¡¡over
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡loads¡¡the¡¡£«¡¡operator¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡As¡¡an¡¡example£»¡¡let¡¯s¡¡walk¡¡through¡¡implementing¡¡the¡¡£«¡¡operator¡¡for¡¡the¡¡plex¡¡number¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡type¡£¡¡plex¡¡numbers¡¡are¡¡numbers¡¡that¡¡have¡¡two¡¡parts£º¡¡real¡¡and¡¡imaginary¡£¡¡For¡¡example£»¡¡a¡¡£«¡¡b¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡is¡¡a¡¡plex¡¡number£»¡¡where¡¡a¡¡is¡¡the¡¡real¡¡part¡¡and¡¡b¡¡is¡¡the¡¡imaginary¡¡part¡£¡¡To¡¡add¡¡a¡¡plex¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡number£»¡¡you¡¡add¡¡the¡¡real¡¡parts£»¡¡and¡¡then¡¡add¡¡the¡¡imaginary¡¡parts£»¡¡and¡¡that¡¡gives¡¡you¡¡the¡¡new¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡number¡£¡¡The¡¡following¡¡is¡¡the¡¡plex¡¡number¡¡type£»¡¡plexType£»¡¡declaration¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡NotInheritable¡¡Class¡¡plexType¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Private¡¡ReadOnly¡¡_imaginary¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Private¡¡ReadOnly¡¡_real¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Sub¡¡New£¨ByVal¡¡real¡¡As¡¡Double£»¡¡ByVal¡¡imaginary¡¡As¡¡Double£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_real¡¡=¡¡real¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_imaginary¡¡=¡¡imaginary¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Sub¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡Overrides¡¡Function¡¡ToString£¨£©¡¡As¡¡String¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡String¡£Concat£¨New¡¡Object£¨£©¡¡£û¡¨£¨¡¨£»¡¡_real£»¡¡¡¨£©¡¡£¨¡¨£»¡¡_imaginary£»¡¡¡¨£©i¡¨£ý£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Function¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡ReadOnly¡¡Property¡¡Imaginary£¨£©¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡_imaginary¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Property¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡443¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡6¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡O¡¡TH¡¡E¡¡R¡¡¡¡¡¡V¡¡IS¡¡U¡¡AL¡¡¡¡¡¡B¡¡A¡¡SI¡¡C¡¡¡¡T¡¡E¡¡C¡¡HN¡¡IQ¡¡U¡¡E¡¡S¡¡421¡¡
¡¡¡¡¡¡¡¡Public¡¡ReadOnly¡¡Property¡¡Real£¨£©¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡_real¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set£¨ByVal¡¡value¡¡As¡¡Double£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_real¡¡=¡¡value¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Set¡¡
¡¡¡¡¡¡¡¡End¡¡Property¡¡
End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡plexType¡¡is¡¡an¡¡immutable¡¡type¡¡that¡¡has¡¡two¡¡data¡¡members¡¡representing¡¡the¡¡real¡¡and¡¡¡¡
imaginary¡¡number¡¡parts¡£¡¡
¡¡¡¡¡¡¡¡¡¡The¡¡goal¡¡is¡¡to¡¡define¡¡the¡¡£«¡¡operator¡¡so¡¡that¡¡the¡¡following¡¡code¡¡can¡¡be¡¡piled¡£¡¡
Dim¡¡a¡¡As¡¡plexType¡¡=¡¡New¡¡plexType£¨1¡£0£»¡¡10¡£0£©¡¡
Dim¡¡b¡¡As¡¡plexType¡¡=¡¡New¡¡plexType£¨2¡£0£»¡¡20¡£0£©¡¡
Dim¡¡c¡¡As¡¡plexType¡¡=¡¡a¡¡£«¡¡b¡¡
¡¡¡¡¡¡¡¡¡¡Overloading¡¡the¡¡£«¡¡operator¡¡means¡¡to¡¡add¡¡a¡¡method¡¡that¡¡has¡¡a¡¡special¡¡notation¡£¡¡The¡¡following¡¡¡¡
is¡¡the¡¡modified¡¡plexType¡¡type¡¡with¡¡the¡¡overloaded¡¡operator¡¡implemented¡¡£¨bolded£©¡£¡¡
Public¡¡NotInheritable¡¡Class¡¡plexType¡¡
¡¡¡¡¡¡¡¡Private¡¡ReadOnly¡¡_imaginary¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡Private¡¡ReadOnly¡¡_real¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡Public¡¡Sub¡¡New£¨ByVal¡¡real¡¡As¡¡Double£»¡¡ByVal¡¡imaginary¡¡As¡¡Double£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_real¡¡=¡¡real¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_imaginary¡¡=¡¡imaginary¡¡
¡¡¡¡¡¡¡¡End¡¡Sub¡¡
¡¡¡¡¡¡¡¡Public¡¡Shared¡¡Operator¡¡£«£¨ByVal¡¡a¡¡As¡¡plexType£»¡¡ByVal¡¡b¡¡As¡¡plexType£©¡¡_¡¡
¡¡¡¡¡¡¡¡¡¡¡¡As¡¡plexType¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡New¡¡plexType£¨£¨a¡£Real¡¡£«¡¡b¡£Real£©£»¡¡£¨a¡£Imaginary¡¡£«¡¡b¡£Imaginary£©£©¡¡
¡¡¡¡¡¡¡¡End¡¡Operator¡¡
¡¡¡¡¡¡¡¡Public¡¡Overrides¡¡Function¡¡ToString£¨£©¡¡As¡¡String¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡String¡£Concat£¨New¡¡Object£¨£©¡¡£û¡¨£¨¡¨£»¡¡_real£»¡¡¡¨£©¡¡£¨¡¨£»¡¡_imaginary£»¡¡¡¨£©i¡¨£ý£©¡¡
¡¡¡¡¡¡¡¡End¡¡Function¡¡
¡¡¡¡¡¡¡¡Public¡¡ReadOnly¡¡Property¡¡Imaginary£¨£©¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡_imaginary¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Get¡¡
¡¡¡¡¡¡¡¡End¡¡Property¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡444¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
422¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡6¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡O¡¡TH¡¡E¡¡R¡¡¡¡¡¡V¡¡IS¡¡U¡¡AL¡¡¡¡¡¡B¡¡A¡¡SI¡¡C¡¡¡¡TE¡¡C¡¡H¡¡N¡¡IQ¡¡U¡¡E¡¡S¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Public¡¡ReadOnly¡¡Property¡¡Real£¨£©¡¡As¡¡Double¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return¡¡_real¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Get¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Property¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End¡¡Class¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡declaration¡¡of¡¡the¡¡overloaded¡¡operator¡¡is¡¡a¡¡specially¡¡defined¡¡function£»¡¡which¡¡follows¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡these¡¡rules£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡The¡¡method¡¡is¡¡always¡¡declared¡¡as¡¡Shared¡¡in¡¡the¡¡context¡¡of¡¡the¡¡type¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡The¡¡method¡¡has¡¡a¡¡return¡¡type£»¡¡which¡¡should¡¡be¡¡the¡¡type¡¡that¡¡you¡¡want¡¡to¡¡construct¡£¡¡In¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡most¡¡cases£»¡¡it¡¡is¡¡the¡¡type¡¡of¡¡the¡¡declaration¡¡£¨except¡¡where¡¡a¡¡Boolean¡¡is¡¡required£©¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡The¡¡method¡¡identifier¡¡starts¡¡with¡¡the¡¡keyword¡¡Operator£»¡¡followed¡¡by¡¡a¡¡space£»¡¡and¡¡then¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡operator¡¡being¡¡overloaded¡¡£¨£«£»¡¡¡£»¡¡and¡¡so¡¡on£©¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡GoTo¡¡Statement¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡GoTo¡¡statement¡¡allows¡¡you¡¡to¡¡jump¡¡from¡¡one¡¡spot¡¡in¡¡the¡¡code¡¡to¡¡another¡£¡¡In¡¡the¡¡past£»¡¡when¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡we¡¡did¡¡not¡¡have¡¡objects£»¡¡methods£»¡¡and¡¡other¡¡advanced¡¡programming¡¡constructs£»¡¡developers¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡used¡¡the¡¡GoTo¡¡statement¡¡because¡¡they¡¡had¡¡no¡¡other¡¡choice¡£¡¡Currently£»¡¡many¡¡in¡¡the¡¡software¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡industry¡¡dislike¡¡the¡¡GoTo¡¡statement¡£¡¡They¡¡think¡¡that¡¡the¡¡GoTo¡¡statement¡¡is¡¡a¡¡sign¡¡of¡¡poor¡¡program
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ming£»¡¡and¡¡that¡¡you¡¡never¡¡need¡¡to¡¡use¡¡it¡£¡¡The¡¡Channel¡¡9¡¡forum¡¡£¨http£º//channel9¡£msdn¡£/¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ShowPost¡£aspx£¿PageIndex=1&PostID=14652£©¡¡has¡¡a¡¡good¡¡discussion¡¡on¡¡the¡¡use¡¡of¡¡GoTo¡¡statements¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡In¡¡this¡¡discussion£»¡¡a¡¡person¡¡who¡¡was¡¡against¡¡the¡¡GoTo¡¡statement¡¡said¡¡this£º¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡only¡¡possible¡¡exception¡¡would¡¡be¡¡if¡¡you¡¡are¡¡doing¡¡some¡¡sort¡¡of¡¡puter¡¡graphics¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡app£»¡¡where¡¡I¡¡would¡¡tolerate¡¡a¡¡£¨for¡¡y£©¡¡£¨for¡¡x£©¡¡nesting£»¡¡because¡¡the¡¡inner¡¡loop¡¡is¡¡likely¡¡to¡¡be¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡quite¡¡simple¡¡and¡¡the¡¡structure¡¡makes¡¡more¡¡sense¡¡as¡¡an¡¡entirety¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡So£»¡¡he¡¡would¡¡tolerate¡¡the¡¡GoTo¡¡statement¡¡in¡¡a¡¡specific¡¡situation£»¡¡and¡¡that¡¡means¡¡that¡¡one¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡can¡¯t¡¡argue¡¡that¡¡GoTo¡¡is¡¡all¡¡bad¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡What¡¡I¡¡like¡¡about¡¡how¡¡Visual¡¡Basic¡¡implemented¡¡GoTo¡¡is¡¡that¡¡it¡¡is¡¡designed¡¡to¡¡solve¡¡a¡¡partic
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ular¡¡p