加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么我不能在VB.NET中使用“新”表达式作为语句?

发布时间:2020-12-17 07:14:33 所属栏目:百科 来源:网络整理
导读:为什么我不能使用括号后跟关键字new来开始一行?例如: (New custom_obj).foo(var) 在这种情况下显而易见的是,我试图避免创建 custom_obj的命名实例.因为我知道我只会在那句话中使用它. 请注意,实际创建命名实例对我来说不是问题…我只是想知道为什么这是不
为什么我不能使用括号后跟关键字new来开始一行?例如:

(New <custom_obj>).foo(var)

在这种情况下显而易见的是,我试图避免创建< custom_obj>的命名实例.因为我知道我只会在那句话中使用它.

请注意,实际创建命名实例对我来说不是问题…我只是想知道为什么这是不可能的原因.

解决方法

你想要一位语言律师回答吗?查看VB.NET语言规范,从 10. Statements开始.最简单的答案是“表达式”一词不会出现在该页面上. NewExpression与InvocationExpression明确不同,因此您可以在InvocationStatement中使用InvocationExpression,但是您只能在LocalDeclarationStatement中或在某些更大表达式的上下文中使用NewExpression.

更方便的是,VB.NET语法设计为易于阅读,编写和解析,其中一种方法是通过小心什么是Statement和什么是Expression. Python是类似的 – 赋值是一个语句而不是表达式.没有理由让每种语言都像C一样.

但是,正如chibacity指出的那样,你可以使用Call语句解决这个问题:

call new object.toString

将成功编译.试着让你的课堂变得有意义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读