嗔秤戻幣�哉膵�云利匈嬉蝕湊蛸賜�塋床四衲���萩晦編報炎嘔囚^泡仟 ̄云利匈�《超噌�殻窟�嵌虜隆輓麈觚翹瀘卉韮�仍仍�。� 烏御危列
昂昂慕汐 卦指云慕朕村 厘議慕尺 厘議慕禰 TXT畠云和墮 序秘慕杏 紗秘慕禰

VB2008貫秘壇欺娼宥(PDF鯉塀哂猟井)-及43嫗

梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 Enter 囚辛指欺云慕朕村匈��梓囚徒貧圭�鮗� ● 辛指欺云匈競何��
!!!!隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��




                    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 has been modified 



Figure 4´5。  Using a custom value type  



      As a parison�察�the same operations can be carried out using a reference type�察�where the  

reference code is as follows�此�



Dim val As MyReferenceType = New MyReferenceType�┌� 

Dim copiedVal As MyReferenceType = val 



Console。WriteLine�─�val value=; & val。value & _ 

    ; copiedVal value=; & copiedVal。value�� 

val。value = 10 

Console。WriteLine�─�val value=; & val。value & _ 

    ; copiedVal value=; & copiedVal。value�� 



      So�察�if two code pieces are functionally identical�察�with the single difference being their type  

��value type versus reference type���察�will they generate the same results�拭�

      Running both code pieces results in the following output�此�



var value=0 copiedVar value=0 

var value=10 copiedVar value=0 

val value=0 copiedVal value=0 

val value=10 copiedVal value=10 



      Looking closely at the results�察�you see that two functionally identical code pieces that differ  

only in the variable type they use generate pletely different results�此 �


´´´´´´´´´´´´´´´´´´´´´´Page 106´´´´´´´´´´´´´´´´´´´´´´´

84        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 



               o  When you assign and modify a value type�察�only the contents of the modified variable  

                  change。 



               o  When you assign and modify a reference type�察�the original object changes�察�so the original  

                  variable and assigned variable change because they both point to the same original object。 



                This example demonstrates that when defining user´defined types�察�you need to be careful  

          how you treat value and reference types。 

                As you learned in Chapter 2�察�a value type is stored on the stack。 Thus�察�declaring a user

           defined value type me
卦指朕村 貧匯匈 和匯匈 指欺競何 壘��1�� 家��1��
隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��
梁椣戻幣�� 梁心弌傍議揖扮窟燕得胎��傍竃徭失議心隈才凪万弌誌育断蛍�輌臆惨軼僑〃�燕慕得珊辛參資誼持蛍才将刮襲潜��範寔亟圻幹慕得 瓜寡追葎娼得辛參資誼寄楚署衛、持蛍才将刮襲潜填��