VB.NET弱类型?强类型的?

我以前用过C#.但是,在我加入一家新公司后,我需要编写vb.net.但是我觉得很难写.因为我发现vb.net不是强类型的.它真的不是强类型的吗?或者任何设置?这是一些例子.
If (Me.Check1() And Me.Check2()) Then

根据我的C#知识,一旦Me.Check1()返回false,Me.Check2()将不会被执行.但是我错了.并且用于按位操作.我应该使用AndAlso进行布尔运算.所以它应该是

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

问题是If(Me.Check1()和Me.Check2())然后仍然有效且没有编译错误.我真的想知道我是否能够检查这种“不恰当”的操作.

And AndAso也只是其中一个案例.

有时,我需要忽略案例字符串比较.但是,每个人都会犯错误.有时,我做到了

If (String.Compare(Me.string1,Me.string2,True)) Then

我想每个人都知道这个问题.它应该是

If (String.Compare(Me.string1,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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...