gpt4 book ai didi

VB.NET 弱类型?强类型?

转载 作者:行者123 更新时间:2023-12-04 06:27:53 27 4
gpt4 key购买 nike

我以前用过 C#。但是,我加入新公司后,需要编写vb.net。但是我觉得很难写。因为我发现 vb.net 不是强类型的。真的不是强类型吗?或者任何设置?以下是示例。

If (Me.Check1() And Me.Check2()) Then

根据我的 C# 知识,曾经 Me.Check1()返回假, Me.Check2()不会被执行。然而我错了。 And用于按位运算。我应该使用 AndAlso用于 bool 运算。所以应该是
If (Me.Check1() AndAlso Me.Check2()) Then

问题是 If (Me.Check1() And Me.Check2()) Then仍然有效并且没有编译错误。我真的很想知道我是否能够检查这种“不适当”的操作。
AndAndAlso只是其中一种情况。

有时,我需要忽略 case 字符串比较。然而,每个人都会犯错。有时,我做了
If (String.Compare(Me.string1, Me.string2, True)) Then

我想每个人都知道问题所在。它应该是
If (String.Compare(Me.string1, Me.string2, True) = 0) Then

但是,在编译期间我仍然无法检查这种情况。

我喜欢 C#,因为它可以帮助我们在编译过程中发现很多问题。但是,VB.NET 使我非常困惑,必须在运行时和测试期间确定许多错误。

另一个例子是
Public Sub MySub(ByVal obj as Object)
Console.WriteLine(obj.MyProperty)
End Sub

在 vb.net 中,这种说法仍然有效。为什么?为什么?为什么?有谁知道如何像 C# 一样使用 vb.net?

最佳答案

VB.Net 有强类型和弱类型模式。它是通过 Strict 选项控制的。这可以在项目或源文件级别设置。

' Enable VB.Net strong typing 
Option Strict On

' Enable VB.Net weak / dynamic typing
Option Strict Off

关于VB.NET 弱类型?强类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3517598/

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