有没有办法在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;
}
}
答案 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(真)。