如何:使用定义运算符的类

更新:2007 年 11 月

如果使用定义了自己的运算符的类或结构,则可以从 Visual Basic 访问这些运算符。

在类或结构上定义一个运算符也称为“重载”该运算符。

示例

下面的示例访问 SQL 结构 SqlString,它定义了 SQL 字符串和 Visual Basic 字符串之间的双向转换运算符 (CType 函数)。使用 CType(SQL 字符串表达式, String) 将 SQL 字符串转换为 Visual Basic 字符串,而使用 CType(Visual Basic 字符串表达式, SqlString) 执行反向转换。

' Insert the following line at the beginning of your source file.
Imports System.Data.SqlTypes
Public Sub setJobString(ByVal g As Integer)
    Dim title As String
    Dim jobTitle As System.Data.SqlTypes.SqlString
    Select Case g
        Case 1
            title = "President"
        Case 2
            title = "Vice President"
        Case 3
            title = "Director"
        Case 4
            title = "Manager"
        Case Else
            title = "Worker"
    End Select
    jobTitle = CType(title, SqlString)
    MsgBox("Group " & CStr(g) & " generates title """ _
        & CType(jobTitle, String) & """")
End Sub

SqlString 结构定义从 String 到 SqlString 的转换运算符 (CType 函数),以及从 SqlString 到 String 的另一个转换运算符。将 title 赋给 jobTitle 的语句使用第一个运算符,而 MsgBox 函数 (Visual Basic) 调用使用第二个运算符。

编译代码

请确信正在使用的类或结构定义了要使用的运算符。不要假设类或结构已经定义每个可进行重载的运算符。有关可用运算符的列表,请参见 Operator 语句

请在源文件的开头添加相应于 SQL 字符串的 Imports 语句(在本例中为 System.Data.SqlTypes)。

项目必须引用 System.Data 和 System.XML。如果需要添加它们,请参见 如何:在 Visual Studio 中添加和移除引用 (C#)

请参见

任务

如何:定义运算符

如何:定义转换运算符

如何:调用运算符过程

如何:声明结构

概念

运算符过程

隐式转换和显式转换

扩大转换和收缩转换

参考

Widening

Narrowing

Structure 语句