电脑维修第一互动门户_www.PC106.com 为了方便您再次访问电脑维修站,请点击收藏本站!设为首页
操作系统 · 硬件学院 · 软件学院 · 网络学院 · DIY 经验 · 数据恢复 · 网站技术 · 维修网点 · IT 黄 页 · 大师答疑
故障症状 · 电脑优化 · 病毒快报 · 黑客安全 · 维修宝典 · 电脑保养 · 服 务 器 · 在线杀毒 · 在线电视 · 网址服务
维修 CPU·主板·硬盘·内存·显卡·显示器·键盘鼠标·声卡音箱·软驱光驱·打印机·机箱电源·BIOS·网卡·局域网·浏览器
您现在的位置: 电脑维修 >> 网络学院 >> 程序设计 >> 网络学院正文
技巧 vb.net中的操作符应用实例
作者:未知 文章来源:未知 点击数: 更新时间:2007-1-14 16:44:19

任何一门语言都提供了丰富的操作符,vb也不例外。操作符一般分为:算术运算符,赋值运算符,比较运算符,逻辑运算符,其它。本文只以几个小例子来介绍其中一些比较重要的应用。
在本文中将会用到一个自定义类 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 = value
End Set
End Property
Public Property Color()Property Color() As Color
Get
Return s_color
End Get
Set(ByVal value As Color)
s_color = value
End Set
End Property
Public Property Age()Property Age() As Integer
Get
Return s_age
End Get
Set(ByVal value As Integer)
s_age = value
End Set
End Property
Public Shared Operator +(ByVal a As dog, ByVal b As dog)
Dim c As New dog
c.Name = a.Name + b.Name
c.Age = a.Age + b.Age
c.Color = Color.FromArgb((a.Color.ToArgb + b.Color.ToArgb) / 2)
Return c
End Operator

End 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 If
b = a
b.Name = "NorthSnow"


If a Is b Then
MsgBox("True")
Else
MsgBox("false")
End If
'false
'true

2,操作符重载

我们可以根据需要对操作符进行重载,本文中的 dog 类 就 对 + 操作符 进行了重载 操作。此时对两个dog 类进行相加时,会返回一个dog 类实例 ,他的 Name 是 那两个 dog 实例的 名字相加,年龄也是 dog 实例的年龄之和,颜色是两个颜色的平均值。例子如下:


Dim sb As New System.Text.StringBuilder
Dim m As New dog
Dim n As New dog
Dim c As dog
m.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 Then
MsgBox("true")
Else
MsgBox("false")
End If
b = "northsnow,塞北的雪"
If a Like b Then
MsgBox("true")
Else
MsgBox("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)
'True

a = "Northsnow.123"
b = "[A-Z][a-z]*#"
MsgBox(a Like b)
'True

a = "Northsnow.123"
b = "[A-Z][a-z]*[a-z]"
MsgBox(a Like b)
'False

a = "Northsnow.123"
b = "[A-Z][a-z]*[0-9]"
MsgBox(a Like b)
'True
4,其它的一些特殊操作符

AndAlse ,OrElse 与 and 和 or 差不多,只是他们比 后者更智能,当前面的判断已经确定了返回值的时候,后面的表达式的值就不再计算了。

TypeOf 返回当前对象的类型,每一个类都有一个getType方法与它很相似,据一个小例子如下:

Dim a As New dog
Dim b As New dog
Dim c As Type
c = a.GetType
MsgBox(c.ToString)
If TypeOf (a) Is vb1.Form7.dog Then
MsgBox(True)
End If
'vb1.Form7+dog
'True
就说这么多吧。已有在应用中如果在总结出什么好的经验,再慢慢补充。
上网速度更快更爽、更安全下载使用Firefox火狐浏览器
网络学院录入:nnyx    责任编辑:nnyx 
  • 上一篇网络学院:

  • 下一篇网络学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

     操作系统图片
     

    IE典型故障解决大全

    解决XP局域网访问故障方法

    Windows操作系统万能Ghost全攻略

    重装系统后必须做的事
     热点操作系统

    普通网络学院 ie浏览器故障解决
    普通网络学院 如何防范恶意网站
    普通网络学院 击破威胁你的恶意网页
    普通网络学院 清除可恶的浏览器弹出广告
    普通网络学院 上QQ,却不能浏览网页的几种可能及…
    普通网络学院 解决无法浏览网页故障的十个方法
    普通网络学院 无法浏览网页解决办法
    普通网络学院 打开网页速度变慢原因
    普通网络学院 IE典型故障解决大全
    普通网络学院 解决IE自动关闭故障方法
    关于公司 | 免责声明 | 广告服务 | 招贤纳士 | 联系我们 | 友情链接 1 2 3
    Copyright©2005 - 2007  http://www.PC106.com  All Right Reserved   
    桂ICP备06015569号