VB中的多分配,如C风格的语言

有没有办法在VB.NET中执行此操作,如在C风格的语言中:

struct Thickness { double _Left; double _Right; double _Top; double _Bottom; public Thickness(double uniformLength) { this._Left = this._Right = this._Top = this._Bottom = uniformLength; } } 

扩展Mark的正确答案

这种类型的赋值样式在VB.Net中是不可能的。 C#版本的代码有效,因为在C#赋值中是一个产生值的表达式。 这就是它可以以这种方式链接的原因。

在VB.Net中,赋值是一个语句而不是表达式。 它没有产生任何价值,也无法改变。 实际上,如果您将代码“a = b”编写为表达式,则将其视为值比较而不是赋值。

Eric最近关于C#这个主题的博客文章

在语言级别,赋值是语句而不是表达式。

我发布此消息后,会有人提供如何操作的示例。 但我不认为这是可能的 。 VB.NET将r值中的单个equals视为比较。 例如:

  Dim i As Integer Dim j As Integer i = 5 j = i = 4 Debug.Print(j.ToString()) j = i = 5 Debug.Print(j.ToString()) 

上面的代码打印0(假)和-1(真)。