VB.NET Nullable语法的历史

Lar*_*nal 5 vb.net syntax nullable

我找不到明确的答案.自从C#2.0以来,你已经能够声明了

int? i = 125;
Run Code Online (Sandbox Code Playgroud)

作为简写

Nullable<int> i = Nullable<int>(123);
Run Code Online (Sandbox Code Playgroud)

我记得在某处读过VB.NET不允许这个快捷方式.但是很低,看来,我今天在VS 2008中尝试了它并且它有效.

有谁知道自从.NET 2.0以来是否一直这样,或者这是后来添加的?

Jas*_*son 13

System.Nullable是在.Net 2.0中引入的,并且作为泛型类型可用于VB .你只是不能使用可空语法.所以在VS 2005中你可以做到:

Dim x as Nullable(of Integer)
Run Code Online (Sandbox Code Playgroud)

我不知道在VB 2005中null等价和装箱是否适用于nullables,但我怀疑答案是肯定的,因为.Net团队改变了2.0 CLR来完成装有nullables的拳击.我想象VB会利用这一点.

在2008年,您显然可以做到:

Dim x as Integer?
Run Code Online (Sandbox Code Playgroud)