gpt4 book ai didi

c# - VB.NET : What is static T (C#) in VB. 网络?

转载 作者:太空狗 更新时间:2023-10-29 22:18:17 25 4
gpt4 key购买 nike

考虑:

public static T GetValueOrDefault<T>(this IDataReader reader, string columnName)

T returnValue = default(T);

我想实现类似 this 的东西检查 DBNull。我可以很好地理解代码,但我不太明白 VB.NET 中的静态 T 是什么。有人可以解释一下吗?

最佳答案

Shared中相当于VB中的static。共享方法通常放在 Helper 类中,因为它们不需要类的实例即可运行。

类型 T 表示这是一个泛型方法(这是 VB 9 和 C# 3 中的新功能)。泛型方法有效地将类型作为参数或返回泛型类型。

扩展方法在 VB 9/C# 3 中也是新增的。它们允许您通过添加方法来扩展现有类型。您只需要一个 Shared 方法,该方法可在与您的代码相同的命名空间中使用,而在 VB 中,代码必须位于模块中,而不是普通类中。

模块是无法实例化的类,(因此)只有共享方法。它是用 Module 关键字代替 class 关键字声明的。这是您的 VB 代码。

(对于那些知道“在幕后”发生了什么的人来说,将值类型奇怪地设置为 Nothing 确实可以在 VB 中编译,并且是获取值类型默认值的受支持方式) .

Imports System.Runtime.CompilerServices
<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) As T
Dim returnValue As T = Nothing

End Function

关于c# - VB.NET : What is static T (C#) in VB. 网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/467642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com