VB.NET操作符核心歸類總結(jié)
我們大家都知道對于任何一門語言都提供了多種多樣化的操作符,VB.NET也不例外。VB.NET操作符一般分為:算術(shù)運算符,賦值運算符,比較運算符,邏輯運算符,其它。本文只以幾個小例子來介紹其中一些比較重要的應(yīng)用。大家來看看吧。
在本文中將會用到一個自定義類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操作符重載
我們可以根據(jù)需要對操作符進(jìn)行重載,本文中的dog 類就對+ 操作符進(jìn)行了重載操作。此時對兩個dog 類進(jìn)行相加時,會返回一個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支持通配符。這一點肯定讓我們想起了正則表達(dá)式(Regular Expression)。不過我們千萬不要搞混了,雖然有些地方相近,但是有些通配符與正則表達(dá)式不太一樣,功能也有區(qū)別。like操作符支持的通配符共有5種:
◆? 表示一個任意字符(1個)
◆* 任意個任意字符(0-n個)
◆# 表示一個數(shù)字
◆[charlist] 表示 charlist 中的任意一個字符
◆[!charlist] 表示 不在charlist 中的任意一個字符
用過正則的朋友一定會很容易的理解的,有幾個核心的規(guī)則一定要記牢,那就是:
(1) * 可以匹配任何字符串
(2) ?可以匹配任何一個字符
(3) 而# 相當(dāng)于[0-9] 只能匹配一個數(shù)字 如果要匹配兩個數(shù)字需要寫成 ##
(4) 字符列表中的字符可以用-提供一個區(qū)間,以簡化書寫。
(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 差不多,只是他們比后者更智能,當(dāng)前面的判斷已經(jīng)確定了返回值的時候,后面的表達(dá)式的值就不再計算了。
TypeOf 返回當(dāng)前對象的類型,每一個類都有一個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
就說這么多吧!已有在應(yīng)用中如果在總結(jié)出什么好的經(jīng)驗,再慢慢補(bǔ)充。
【編輯推薦】