…………………………………………………………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
小说推荐
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 其他
- 最新章:第295章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 其他
- 最新章:第309章
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 其他
- 最新章:第136章
- SQL 21日自学通(V3.0)(PDF格式)
- -Page 1-SQL 21 日自学通(V1.0 翻译人 笨猪目录目录 1译者的话 14第一周概貌 16从这里开始 16
- 其他
- 最新章:第170章
- 2008年青年文摘精编版
- 作者:中国青年出版社“初恋”的惩罚.作者:凡 凡 文章来源《真情》2005年第4期 点击数:6608 更新时间:2005-6-5过了年,我就十八岁了。离高考只剩下四个多月了。这一段,班里的男女生相互间递纸条、写情书、约会等地下活动慢慢的多了起来。我这个“尖子生”也突然感到了不安、慌乱,并且自责。不知
- 文学名著
- 最新章:第230章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 其他
- 最新章:第27章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章