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

时间:2010-02-22 16:03:23

标签: c# c++ vb.net variable-assignment c#-to-vb.net

有没有办法在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;
    }
}

2 个答案:

答案 0 :(得分:15)

扩展Mark的正确答案

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

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

Eric最近关于C#

这个主题的博客文章

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

答案 1 :(得分:9)

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

  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(真)。