Stack Overflow中的某个人(w69rdy)帮我提供了一个很好的例子来处理传递到函数中的数据库输出,该输出可能为NULL。问题是我可以理解用C#编写的方法,但是在理解如何在VB.NET中重写该方法时遇到了问题。该方法使用泛型,我迷路了。这是用C#编写的方法。
public T ParseValue<T>(System.Data.SqlClient.SqlDataReader reader, string column)
{
T result = default(T);
if (!reader.IsDBNull(reader.GetOrdinal(column)))
result = (T)reader.GetValue(reader.GetOrdinal(column));
return result;
}
这是如何用VB.NET编写的?返回泛型时方法签名如何更改?
最佳答案
您可以使用C# to VB.NET converter产生以下结果:
Public Function ParseValue(Of T)(reader As System.Data.SqlClient.SqlDataReader, column As String) As T
Dim result As T = Nothing
If Not reader.IsDBNull(reader.GetOrdinal(column)) Then
result = DirectCast(reader.GetValue(reader.GetOrdinal(column)), T)
End If
Return result
End Function
另外:
我建议使用以下资源来帮助了解VB.NET和C#之间的语法差异。它有一个关于泛型的部分:
VB.NET and C# Comparison
关于vb.net - 在VB.NET中返回通用类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5223461/