VB.NET:VB.NET 中的静态 T (C#) 是什么?

2023-12-30

考虑:

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

 T returnValue = default(T);

我想实现类似的东西this http://weblogs.asp.net/skillet/archive/2008/06/18/idatareader-extension-methods.aspx检查 DBNull。我可以很好地理解代码,但我不太明白 VB.NET 中的 static T 是什么。有人可以解释一下吗?


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

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

扩展方法也是 VB 9/C# 3 中的新增功能。这些方法允许您通过添加方法来扩展现有类型。您所需要的只是一个与您的代码在同一命名空间中可用的共享方法,并且在 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB.NET:VB.NET 中的静态 T (C#) 是什么? 的相关文章

随机推荐

  • Terraform timestamp() 为仅数字字符串

    The timestamp https www terraform io docs configuration interpolation html timestamp插值语法中的函数将返回 ISO 8601 格式的字符串 如下所示2019
  • py2exe com dll问题

    我正在尝试用 python 制作一个 com dll 但我尝试注册到编译的 dll 时出现错误消息 运行时错误 r6034 和 无法加载 python dll 这个问题的解决方案是什么 mycode 设置 py This is the di
  • 检测受密码保护的word文件

    我正在使用 netoffice 库从 Word 文件中提取文本 这应该是自动化过程 但是 当Word文件受密码保护时 会显示警报窗口 因此用户需要输入密码 由于这是自动化过程 用户无需输入密码 程序将在此停止 如何检测单词文件是否受 net
  • orderBy后Angularjs错误$index

    我是 Angular js 的新手 在对数组进行排序和处理排序后的数据时遇到一些问题 我有一个包含项目的列表 并希望按 Store storeName 对其进行排序 该列表到目前为止正在运行 但在对数据进行排序后 我的删除功能不再起作用 我
  • Haskell中的IO类型是什么

    我是 Haskell 编程语言的新手 我一直在绊倒IOtype 作为函数参数或返回类型 playGame Screen gt IO OR gameRunner IO String gt String gt IO gt Screen gt I
  • jQuery UI 2 日期选择器和范围选择

    我正在尝试连接 2 个日期选择器以允许用户选择日期范围 我创建了这样的代码 function var dates fromDate toDate datepicker dateFormat yy mm dd changeMonth true
  • 使用向量和对的邻接列表图表示

    我想实现竞争性编程 1 书中的邻接列表图表示 该实现使用 V 顶点的向量 并且对于每个顶点 v 另一个 包含有连接的对 相邻顶点及其边权重 的向量 v 我在获取该图的输入并显示输出时遇到问题 在书中 他们做了这样的声明 include
  • Eclipse 格式化程序在空注释行中添加空格

    Eclipse 代码格式化程序在每个空 Javadoc 注释行中添加一个尾随空格 请参见屏幕截图 同事的格式化程序总是删除这些空格 从而产生恼人的 SVN 差异 他声称使用相同的格式化程序设置 XML 文件 尽管如此 我尝试了格式化程序设置
  • 是否可以检测文本何时换行?

    是否可以检测文本换行的位置 Lorem ipsum dolor 坐 amet 假设上面的文本在 dolor 一词之后换行 如何检测到它并在那里插入一些标记 这样它就可以了Lorem ipsum dolor div class wrap ma
  • 如何在 swift 2.2 中休眠几毫秒?

    请有人告诉我如何在 swift 2 2 中使用 sleep 几毫秒 while true print sleep for 0 002 seconds sleep 0 002 not working but while true print
  • R 地图()中的县 FIPS 准确吗?

    当我运行以下代码时 require maps colors lt data frame county county fips polyname color rep FFFFFF nrow county fips stringsAsFacto
  • UWP Navigation通过 MVVM 进行视图导航

    我在我的应用程序中使用 NavigationView 作为主控件 并在页面加载时使用框架
  • 如何暂停和恢复jquery间隔

    我用 jQuery 制作了一个自定义滑块 为此 我使用了 setInterval 函数 timer setInterval function 8000 但我无法暂停和恢复间隔 我有 2 个按钮 播放 暂停 我想使用 假设我在 3 秒后单击
  • 如何从项目级别指定 --add-opens 并确保无论以何种方式运行我的应用程序都将其考虑在内?

    我最近迁移到 Java 17 随之而来的一些限制要求我使用 add opens因为运行我的应用程序时存在一个依赖项 当我需要添加这个java jar命令已运行 现在我找到了这些解决方案 我可以将其添加到运行该项目的 Dockerfile 中
  • Oracle SQL 全外连接

    我使用 FULL OUTER JOIN 连接 2 个表 运行并给出输出需要 6 分钟 SELECT FROM tab1 FULL OUTER JOIN tab2 ON tab1 id tab2 id 我使用 LEFT OUTER JOIN
  • 从 eclipse+gradle 运行时,Spring Boot 错误地加载测试配置

    当我从 Eclipse STS 作为 Java 应用程序 或 Spring Boot 应用程序 运行 Spring Boot 应用程序时 该应用程序失败 因为它尝试从以下位置加载配置 Configuration 测试类路径 问题是它适用于基
  • 将 C++11 与 2013 年左右编译器一起使用的选项

    是否有任何完整 正确的实施可用 现在 对于 C 11 正则表达式 关于编译器支持与库支持的注意事项 编译器支持 编译器可以识别针对相关功能添加到语言中的任何新语法 利用添加到程序中的新功能的代码将进行编译 图书馆支持 更新库以实际实现该功能
  • 重新排序时 UITableViewCell 的子视图不可见

    当我重新排序 UITableViewCells 时 拖动时单元格的子视图不可见 无论我在 UITableViewCell 子类中还是在 Storyboard 中以编程方式添加子视图 我总是得到相同的结果 拖动时是否有可能看到带有子视图的真实
  • JMeter分布式测试和命令行参数

    我一直在使用 JMeter 参数来指定负载测试的测试属性 例如 testduration rampup period 等 我在 shell 脚本中指定这些参数 它看起来像这样 JMETER PATH home
  • VB.NET:VB.NET 中的静态 T (C#) 是什么?

    考虑 public static T GetValueOrDefault