gpt4 book ai didi

.net - VB.NET 中的 C#'s ` default` 相当于什么?

转载 作者:行者123 更新时间:2023-12-02 17:43:37 25 4
gpt4 key购买 nike

我通常熟悉 C#,并且正在研究某些 VB.NET 代码中的性能问题 - 我希望能够将某些内容与类型的默认值进行比较(有点像 C# 的 默认关键字)。

public class GenericThing<T1, T2>
{
public T1 Foo( T2 id )
{
if( id != default(T2) ) // There doesn't appear to be an equivalent in VB.NET for this(?)
{
// ...
}
}
}

我被引导相信没有在语义上是相同的,但如果我这样做:

Public Class GenericThing(Of T1, T2)
Public Function Foo( id As T2 ) As T1
If id IsNot Nothing Then
' ...
End If
End Function
End Class

那么当T2Integerid的值为0时,条件仍然通过,并对 if 的主体进行求值。但是如果我这样做:

    Public Function Bar( id As Integer ) As T1
If id <> Nothing Then
' ...
End If
End Function

那么条件不满足,并且主体不被评估...

最佳答案

与 C# 不同,VB.NET 不需要使用表达式初始化局部变量。它由运行时初始化为其默认值。正是您所需要的 default 关键字的替代品:

    Dim def As T2    '' Get the default value for T2
If id.Equals(def) Then
'' etc...
End If

别忘了评论,它会让某人“嗯?”一年后。

关于.net - VB.NET 中的 C#'s ` default` 相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750152/

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