Multiassignment in VB like in C-Style languages

巧了我就是萌 提交于 2019-12-05 00:19:54

Expanding on Mark's correct answer

This type of assignment style is not possible in VB.Net. The C# version of the code works because in C# assignment is an expression which produces a value. This is why it can be chained in this manner.

In VB.Net assignment is a statement and not an expression. It produces no value and cannot be changed. In fact if you write the code "a = b" as an expression it will be treated as a value comparison and not an assignment.

Eric's recent blog post on this subject for C#

At a language level assignment is a statement and not an expression.

Mark Wilkins

As soon as I post this, someone will provide an example of how to do it. But I don't think it is possible. VB.NET treats the single equals in the r-value as a comparison. For example:

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

The above code prints 0 (false) and -1 (true).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!