我以前用过C#.但是,在我加入一家新公司后,我需要编写vb.net.但是我觉得很难写.因为我发现vb.net不是强类型的.它真的不是强类型的吗?或者任何设置?这是一些例子.
If (Me.Check1() And Me.Check2()) Then
Run Code Online (Sandbox Code Playgroud)
从我的C#知识,一旦Me.Check1()返回false,Me.Check2()将不会被执行.但是我错了.And用于按位运算.我应该AndAlso用于布尔运算.所以它应该是
If (Me.Check1() AndAlso Me.Check2()) Then
Run Code Online (Sandbox Code Playgroud)
问题是If (Me.Check1() And Me.Check2()) Then仍然有效且没有编译错误.我真的想知道我是否能够检查这种"不恰当"的操作.
And而且AndAlso只是其中一个案例.
有时,我需要忽略案例字符串比较.但是,每个人都会犯错误.有时,我做到了
If (String.Compare(Me.string1, Me.string2, True)) Then
Run Code Online (Sandbox Code Playgroud)
我想每个人都知道这个问题.它应该是
If (String.Compare(Me.string1, Me.string2, True) = 0) Then
Run Code Online (Sandbox Code Playgroud)
但是,在编译期间我仍然无法检查这种情况.
我喜欢C#,因为它有助于我们在编译过程中发现许多问题.但是,VB.NET使我非常困惑,并且必须在运行时和测试期间确定许多错误.
还有一个例子就是
Public Sub MySub(ByVal obj as Object)
Console.WriteLine(obj.MyProperty)
End Sub
Run Code Online (Sandbox Code Playgroud)
在vb.net中,这种语句仍然有效.为什么?为什么?为什么?有谁知道如何使用像C#一样的vb.net?
Jar*_*Par 12
VB.Net具有强类型和弱类型.它通过Strict选项控制.这可以在项目或源文件级别设置.
' Enable VB.Net strong typing
Option Strict On
' Enable VB.Net weak / dynamic typing
Option Strict Off
Run Code Online (Sandbox Code Playgroud)