友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VB2008从入门到精通(PDF格式英文版)-第197章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 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 ty
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!