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

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

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





´´´´´´´´´´´´´´´´´´´´´´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 problem�察�but not raise the old problems of spaghetti code making a mess of things。 So if  

          you need to use a GoTo statement�察�go ahead�察�just don¨t use it excessively。  

                One example where it is not easily possible to avoid using a GoTo statement is in the  

          following pseudo´code。 



          Do While FirstActionLoop�┌� 

              Do While SecondActionLoop�┌� 

                  If BreakOutOfLoops�┌� Then 

                      GoTo EXIT_ALL 

                  End If 

              Loop 

           Loop 

           EXIT_ALL�此�


´´´´´´´´´´´´´´´´´´´´´´Page 445´´´´´´´´´´´´´´´´´´´´´´´

                                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 423 



     This code has two loops。 If the code is executing the second loop and decides to end pro

cessing�察�then exiting the loop bees a bit tricky�察�as you can break execution only one loop at a  

time using the  Exit Do statement。 Thus�察�one solution is to use the GoTo statement�察�as shown。 

     The GoTo statement is associated with an identifier that represents a label。 The label can be  

placed almost anywhere in the declared method。 An exception is that you can¨t place a label in  

a Select statement。 However�察�you can place the label before or after the GoTo keyword。 



 Generics Constraints 



 generics have been covered in several chapters。 An additional aspect of  generics is  

constraints�察�which can be optionally used to optimize programming。 Constraints limit the types  

that the parameter can be。 

     Three types of constraints are Class�察�New�察�and a specific type。 As a general rule�察�a constraint  

is added in the form of an As statement�察�as follows�此�



Class Example��Of DataType As ��New���� 

End Class 



     This example limits DataType to types that have a default constructor。 



Using the Type Constraint 



Type constraints allow you to associate a minimal type with the  generics parameter。 For  

example�察�suppose this interface is defined�此�



    Interface IExample  

        Sub Method�┌� 

    End Interface 



     Adding an  IExample constraint to the  generics parameter allows you to define a class  

as follows�此�



Class ExampleMgr��Of DataType As �� IExample����  

    Private _inst As DataType 



    Public Sub New��ByVal inst As DataType��  

        _inst = inst 

    End Sub 



    Public Sub DoSomething�┌�  

        _inst。Method�┌� 

    End Sub 

End Class 



     In the example�察�the constraint of IExample allows a developer to call Method�┌�。 If the constraint  

were not there�察�the reference to Method would generate a piler error�察�because Method�┌� is  

not a method of DataType。 

     But is this ability to reference a method an advantage�拭�After all�察�you could write the  

ExampleMgr code without using  generics�察�like this�此�


´´´´´´´´´´´´´´´´´´´´´´Page 446´´´´´´´´´´´´´´´´´´´´´´´

424       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 



          Class ExampleMgr  

              Dim _inst As IExample 



              Public Sub New��ByVal inst As IExample�� 

                  Me。_inst = inst 

              End Sub 



              Public Sub DoSomething�┌�  

                  _inst。Method�┌� 

              End Sub 

          End Class 



               The  generics code and the interface´based code do the exact same thing�察�and using  

           generics offers no advantage in this example。 But that is not always the case。 Consider the  

          following modified example of  ExampleMgr。 



          Class ExampleMgr��Of DataType As �� IExample ���� 

              Dim _inst As DataType  



              Public Sub New��ByVal inst As IExample�� 

                  Me。_inst = CType��inst�察�DataType�� 

              End Sub 



              Public Sub DoSomething�┌�  

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