我们在对引用类型的数据类型进行转换时,为了不在转换过程中报错,如果遇到转换失败的话,就直接返回Nothing(C#语言返回null)。满足这种需求的主要有下面两个,一个是Vb中的TryCast,另外一个是C#中的as运算符。
这种运算符使用的前提条件是,两种数据类型必须有继承或实现关系。如果不存在这样的关系,在编译阶段就会报错。
语言 | 运算符 |
Vb.Net | TryCast |
C# | as |
按实现关系转换成相应的接口。
VB.Net |
Function PrintTypeCode(ByVal obj As Object) As String Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible) If objAsConvertible Is Nothing Then Return obj.ToString() & " does not implement IConvertible" Else Return "Type code is " & objAsConvertible.GetTypeCode() End If End Function |
C# |
public string PrintTypeCode(object obj) { IConvertible objAsConvertible = obj as IConvertible; if (objAsConvertible == null) return obj.ToString() + " does not implement IConvertible"; else return "Type code is " + objAsConvertible.GetTypeCode(); } |
按继承关系转换成相应的类。
VB.Net |
Dim tbl As SmGrid=TryCast(Proj.CurrentGrid,SmGrid) If tbl IsNot Nothing Then MessageBox.Show(tbl.Name) Else MessageBox.Show("当前表为空") End If |
C# |
SmGrid tbl = Proj.CurrentGrid as SmGrid; if (tbl != null) MessageBox.Show(tbl.Name); else MessageBox.Show("当前表为空"); |