[多图] 教你在 VB 15 使用 C# 7 新增的返回值
本帖最后由 tmp00000 于 2017-3-1 20:10 编辑
既然这几天有人发 C# 7 的新增功能,那我就跟风水一帖 VB 15 怎样用 C# 7 新增功能产生的新返回值。
由于这篇文章针对的读者是能看懂 VB 15 代码的开发人员,以下文字中的代码使用 VB 语法。
1. System.Threading.Tasks.ValueTask(Of T)
这个类型是 C# 7 “返回 值类型任务” 用到的。
代码如图 1:
***图片停止解析***
在 VB 15 中的使用方式仍然是使用 Await 关键字。
代码如图 2:
***图片停止解析***
至于为什么 VB 15 不能用 Async 关键字产生这种值类型的任务,一种合理的解释是 VB 项目组的人在忙着把 VB 移植到 .NET Core,才没有开发这个功能。
2. System.ValueTuple(Of T1, T2)
这个功能 VB 15 也有。从图 3 和 图 4 可以看出这两个语言在这个功能上的无缝衔接。
***图片停止解析***
***图片停止解析***
3. ByRef Function XXX() As xxx
对应的是图 5 和 图 6。用法与 Mid 语句 几乎没有区别。
需要注意的是,值类型的引用除了使用类似 Mid 的语法,无法使用。甚至对返回值调用 GetType 也不能获取到相应的类型。
***图片停止解析***
***图片停止解析***
全部的代码。其中的单元测试全部通过。
***图片停止解析***
***图片停止解析***
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
本帖的截图中没有体现的 VB 15 的几项改进是: 代码重构工具增强,Intellisense 改进,代码风格约束设置,二进制数字。 有些原有功能与 C# 7 的更新重复了,这次就没提。例如 隐式变量声明,变量方法,Select Case 语句中使用复杂类型。 VB 15 添加但是 C# 7 没有的功能: 在值元组中使用弱类型语法(扩充 Option Strict),隐式声明值元组类型变量(扩充 Option Explicit)。当时这种看着不像功能的功能在 GitHub 上面有测试。 C# 7 添加而 VB 15 没有添加的功能: 表达式中抛出,is 模式匹配,解构,产生值类型的引用,返回 ValueTask 的异步函数。
C# 添加的功能中,返回值类型的方法 和 解构 比较影响代码可读性,is 模式匹配与 VB 语法冲突较大。所以这些功能在下一个(>15) VB 出现的几率较小。就算出现了,写法也是会有区别的。
Quotesscs 发表于 2017-3-1 23:22
用VB.NET的不多,学校也不教
学校当然不教了。学这个对于找工作几乎没有帮助。
Quotesscs 发表于 2017-3-1 23:22
用VB.NET的不多,学校也不教
学这门语言一般情况下是自己用的。自己的项目代码可读性高更利于满足周围人的好奇心,而且更容易写出可维护性强的代码。