[英]VB.Net variable declaration
我注意到,即使同时启用了Option Strict
和Option Explicit
,这两个文件都可以编译而没有任何编译器警告或错误:
Dim x As Exception = New Exception("this is a test")
Dim y = New Exception("this is another test")
我的问题是,使用第一种方法(参见变量x)还是第二种方法(参见变量y)更合适? 我的猜测是VB不需要As
子句,因为变量已就地初始化,因此编译器可以推断类型。
我倾向于第一种方法,因为它“感觉”正确,并且与其他语言(例如C#
)更加一致,只是想知道是否有某种很好的理由使一种方法优于另一种方法。 我想这真的是个人选择。
看到Option Infer On的奇迹,编译器会自动找出“ y”的类型。 自VS2008起可用。 将其关闭会得到您正在寻找的错误:
Option Strict On
Option Infer Off
Module Module1
Sub Main()
Dim x As Exception = New Exception("this is a test")
Dim y = New Exception("this is another test") ''# error BC30209
Dim z As New Exception("this is a third test")
End Sub
End Module
Option Infer
是控制此编译器功能的因素。 两者是等效的-这类似于关于是否使用var
关键字的COT辩论。 我的两分钱是让开发人员自己决定的,但是许多人可能会说要建立一个公约并遵守它。
我会做Dim x As New Exception("this is a test")
。 两全其美,没有推断,但您仍然只需要键入Exception
一次即可:)
我认为第一个(带有变量类型声明)将是最安全的使用方式。 如果程序很小,则不会真正起作用,但是对于较大的程序,可能会有明显的编译器滞后。 因此(我认为)最好声明类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.