【问题标题】:VB -Parentheses! Please explain?VB - 括号!请解释?
【发布时间】:2014-03-18 00:04:04
【问题描述】:
Sub Main() 

    Console.WriteLine("check")   
    Console.Read()

End Sub

为什么 Sub Main() 需要它们?它们如何应用于此程序? .WriteLine("") 在这里我添加了一个值。 Console.Read() 是否持有要在控制台上显示的值“检查”?为什么他们在这里。 我知道你们所有的专家都认为这是一个愚蠢的问题,但是我无法理解它的帮助!对我来说,这些是保存或传递过程值的框。 sub main 是保存用户输入代码的容器吗?如果是这样,为什么使用表单按钮时它已满?但是这里有一个VB默认未使用和空的?在我看来,没有事件值它不应该在那里......?????

【问题讨论】:

  • 我不确定我是否理解您的问题;您是在询问语言设计者在声明函数的语法背后的推理吗?
  • 我在问空括号里面是什么?什么都没有,只是为了展示?
  • 它表示某种调用,在这种情况下是子或函数,而不是成员属性。如果有帮助,您可以认为它们包含 NULL、void、Nothing 等,但为了对程序员好一点,VB.Net 团队这样做了,因此程序员不需要显式传入空值。

标签: vb.net


【解决方案1】:

在调用方法时,您可以在 VB 中选择是否在没有参数的情况下包含括号。方法的定义也是如此,无论是函数还是子。

请参阅http://msdn.microsoft.com/en-us/library/dz1z94ha.aspx(MSDN 上的子声明)。

调用子过程

您通过在语句中使用过程名称来调用 Sub 过程 然后在该名称后面加上括号中的参数列表。 仅当您不提供任何参数时,您才可以省略括号。 但是,如果您始终包含 括号。

【讨论】:

  • 所以你说里面什么都没有?我无法理解这一点。
  • 是的,@Abraham 就是这么说的。 Visual Basic 有自己独特的语法规则集。在 VB 中,您可以调用带有或不带有括号的 sub。它可能看起来不合适,但它是该语言的一个选项。
  • @user3371628,VB 让它变得混乱,因为括号是可选的,并且括号也用于其他目的,例如数组。 () 使熟悉其他语言的人更容易阅读 VB。这是始终包含它们的一个很好的理由。此外,括号是区分属性和方法的一种方式。
【解决方案2】:

括号是必需的,optional 是可选的。在空参数/参数列表的情况下,括号是“仅用于显示”。

Sub Procedure 可以声明为 Sub Main()Sub Main - 如果没有参数,括号是可选的。同样,当(且仅当)没有提供参数时,可以不带括号调用过程/函数。

Sub A               ' ok, no parameter list - no need for parenthesis
Sub A()             ' it's fine to use parenthesis anyway
Sub B(x as Integer) ' need parenthesis for parameter list

obj.A               ' ok, no arguments - no need for parenthesis
obj.A()             ' it's fine to use parenthesis anyway
obj.B(42)           ' need parenthesis when arguments are specified

在上面,A 的定义和A 的调用是等价的,因为在这些情况下括号是可选的。

【讨论】:

  • 那么,如果不需要它们,为什么还要它们呢?他们是空的?
  • @user3371628 如果没有参数/参数,根据语言规则,括号是optional。程序员可以根据风格偏好包括(或省略)这样的可选括号,并且这两种形式在语义上是等效的。 (在其他语言中存在差异,但在 VB.NET 中声明/使用A 的两种形式是相同的。)
猜你喜欢
  • 1970-01-01
  • 2010-11-27
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多