Shi*_*mmy 12 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;
}
}
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 15
扩展Mark的正确答案
这种类型的赋值样式在VB.Net中是不可能的.代码的C#版本有效,因为在C#赋值中是一个产生值的表达式.这就是它可以以这种方式链接的原因.
在VB.Net中,赋值是一个语句而不是表达式.它没有产生任何价值,也无法改变.实际上,如果将代码"a = b"编写为表达式,则将其视为值比较而不是赋值.
Eric最近关于C#这个主题的博客文章
在语言级别,赋值是语句而不是表达式.
我发布此消息后,会有人提供如何操作的示例.但我不认为这是可能的.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())
Run Code Online (Sandbox Code Playgroud)
上面的代码打印0(假)和-1(真).