VB中对应C#结构体default字面量的最佳等价写法是什么?
VB中对应C#
return default;(结构体默认值)的最佳写法 直接使用
Return Nothing就是最恰当的等价写法- 在VB里,当目标类型是值类型(包括结构体)时,
Nothing完全等价于C#的default(T):它会将结构体的所有值类型字段设为各自的默认值,引用类型字段设为null,完全匹配你需要的结构体默认值行为。 - Visual Studio建议把
CType(Nothing, T)替换成Nothing是合理的——当T是值类型时,VB编译器会自动将Nothing解析为该值类型的默认实例,不需要显式的类型转换。
- 在VB里,当目标类型是值类型(包括结构体)时,
举个简单例子验证行为:
Public Structure SampleStruct Public NumericField As Integer Public ReferenceField As String End Structure Public Function GetDefaultStruct() As SampleStruct ' 这行代码的效果和C#的return default(SampleStruct);完全一致 Return Nothing End Function调用这个方法返回的实例中,
NumericField会是0(int的默认值),ReferenceField会是Nothing(对应C#的null)。泛型场景下同样适用:如果你的代码是泛型方法且T被约束为结构体(值类型),
Return Nothing依然能正确返回T的默认实例,编译器会自动处理类型推断,不需要额外转换操作。
内容的提问来源于stack exchange,提问作者Fainbrart
相关产品推荐
相关产品推荐

