当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《VB.NET:VB.NET中的静态T(C#)是什么?》经验,为你挑选了1个好方法。

考虑:

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

 T returnValue = default(T);

我想实现像这样检查的DBNull.我可以很好地遵循代码,但我不太明白VB.NET中的静态T是什么.有人可以解释一下吗?



1> Christopher ..:

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

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

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

模块是一个无法实例化的类,因此只有共享方法.它使用Module关键字声明,而不是class关键字.这是你在VB中的代码.

(对于那些知道"在幕后"发生了什么的人来说奇怪地设置一个值类型来Nothing在VB中编译并且是获得值类型的默认值的支持方式).

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

End Function


另外,我认为Shared在这里是无效的,因为扩展方法必须在Modules中.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有