我们大家都知道对于任何一门语言都提供了多种多样化的操作符,VB.NET也不例外。VB.NET操作符一般分为:算术运算符,赋值运算符,比较运算符,逻辑运算符,其它。本文只以几个小例子来介绍其中一些比较重要的应用。大家来看看吧。
在本文中将会用到一个自定义类dog ,代码如下:
- Public Class dogClass dog
- Private s_name As String
- Private s_color As Color
- Private s_age As Integer
- Public Sub New()Sub New()
- s_name = "塞北的雪"
- s_age = 22
- s_color = System.Drawing.Color.Red
- End Sub
- Public Property Name()Property Name() As String
- Get
- Return s_name
- End Get
- Set(ByVal value As String)
- s_name = valueEnd SetEnd Property
- Public Property Color()Property Color() As Color
- Get
- Return s_color
- End Get
- Set(ByVal value As Color)s_color = valueEnd Set
- End PropertyPublic Property Age()Property Age() As IntegerGetReturn s_age
- End GetSet(ByVal value As Integer)s_age = valueEnd Set
- End PropertyPublic Shared Operator +(ByVal a As dog, ByVal b As dog)
- Dim c As New dogc.Name = a.Name + b.Namec.Age = a.Age + b.Agec.Color = Color.FromArgb((a.Color.ToArgb + b.Color.ToArgb) / 2)
- Return cEnd OperatorEnd Class
1、Is运算符
Is运算符比较两个“引用对象”是否引用了同一实例。 例子如下:
- Dim a As New dog
- Dim b As New dog()If a Is b Then
- MsgBox("True")Else
- MsgBox("False")
- End Ifb = ab.Name = "North
- Snow"If a Is b Then
- MsgBox("True")Else
- MsgBox("false")
- End If'false'true
2、VB.NET操作符重载
我们可以根据需要对操作符进行重载,本文中的dog 类就对+ 操作符进行了重载操作。此时对两个dog 类进行相加时,会返回一个dog 类实例 ,他的Name是那两个dog 实例的名字相加,年龄也是dog 实例的年龄之和,颜色是两个颜色的平均值。例子如下:
- Dim sb As New System.Text.StringBuilder
- Dim m As New dogDim n As New dog
- Dim c As dogm.Name = "NorthSnow"c = m + n
- sb.AppendLine()
- sb.Append(m.Name)
- sb.Append("--")
- sb.Append(m.Age)
- sb.Append("--")
- sb.Append(m.Color.ToArgb)
- sb.AppendLine()
- sb.Append(n.Name)
- sb.Append("--")
- sb.Append(n.Age)
- sb.Append("--")
- sb.Append(n.Color.ToArgb)
- sb.AppendLine()
- sb.Append(c.Name)
- sb.Append("--")
- sb.Append(c.Age)
- sb.Append("--")
- sb.Append(c.Color.ToArgb)
- MsgBox(sb.ToString)'
- NorthSnow--22---65536'塞北的雪--22---65536'NorthSnow塞北的雪--44---65536
3、like操作符
like操作符用于判断一个字符串与另外一个字符串是否匹配,大小写敏感。语法是:Result=String like Pattern。
例子如下:
- Dim a As String = "Northsnow,塞北的雪"
- Dim b As String = "Northsnow,塞北的雪"
- If a Like b ThenMsgBox("true")ElseMsgBox("false")
- End Ifb = "northsnow,塞北的雪"
- If a Like b ThenMsgBox("true")ElseMsgBox("false")
- End If'true'false
另外,Pattern支持通配符。这一点肯定让我们想起了正则表达式(Regular Expression)。不过我们千万不要搞混了,虽然有些地方相近,但是有些通配符与正则表达式不太一样,功能也有区别。like操作符支持的通配符共有5种:
◆? 表示一个任意字符(1个)
◆* 任意个任意字符(0-n个)
◆# 表示一个数字
◆[charlist] 表示 charlist 中的任意一个字符
◆[!charlist] 表示 不在charlist 中的任意一个字符
用过正则的朋友一定会很容易的理解的,有几个核心的规则一定要记牢,那就是:
(1) * 可以匹配任何字符串
(2) ?可以匹配任何一个字符
(3) 而# 相当于[0-9] 只能匹配一个数字 如果要匹配两个数字需要写成 ##
(4) 字符列表中的字符可以用-提供一个区间,以简化书写。
(5) 大小写敏感
下面就举几个例子说明一下:
- Dim a As String = "Northsnow.123"
- Dim b As String = "*.###"MsgBox(a Like b)
- 'Truea = "Northsnow.123"b = "[A-Z][a-z]*#"MsgBox(a Like b)
- 'Truea = "Northsnow.123"b = "[A-Z][a-z]*[a-z]"MsgBox(a Like b)
- 'Falsea = "Northsnow.123"b = "[A-Z][a-z]*[0-9]"MsgBox(a Like b)
- 'True
4、其它的一些特殊VB.NET操作符
AndAlse,OrElse与and 和or 差不多,只是他们比后者更智能,当前面的判断已经确定了返回值的时候,后面的表达式的值就不再计算了。
TypeOf 返回当前对象的类型,每一个类都有一个getType方法与它很相似,举一个小例子如下:
- Dim a As New dogDim b As New dogDim c As Typec = a.GetTypeMsgBox(c.ToString)
- If TypeOf (a) Is vb1.Form7.dog ThenMsgBox(True)
- End If'vb1.Form7+dog'True
就说这么多吧!已有在应用中如果在总结出什么好的经验,再慢慢补充。
【编辑推荐】