[多图] 教你在 VB 15 使用 C# 7 新增的返回值

tmp00000 UID.995403
2017-03-01 发表

本帖最后由 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所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
tmp00000 UID.995403
2017-03-01 回复

就算现在 VB 是后妈养的,我也没想到关注这项技术的人会少到这种程度。

tmp00000 UID.995403
2017-03-01 回复

本帖的截图中没有体现的 VB 15 的几项改进是: 代码重构工具增强,Intellisense 改进,代码风格约束设置,二进制数字。 有些原有功能与 C# 7 的更新重复了,这次就没提。例如 隐式变量声明,变量方法,Select Case 语句中使用复杂类型。 VB 15 添加但是 C# 7 没有的功能: 在值元组中使用弱类型语法(扩充 Option Strict),隐式声明值元组类型变量(扩充 Option Explicit)。当时这种看着不像功能的功能在 GitHub 上面有测试。 C# 7 添加而 VB 15 没有添加的功能: 表达式中抛出,is 模式匹配,解构,产生值类型的引用,返回 ValueTask 的异步函数。

tmp00000 UID.995403
2017-03-01 回复

C# 添加的功能中,返回值类型的方法 和 解构 比较影响代码可读性,is 模式匹配与 VB 语法冲突较大。所以这些功能在下一个(>15) VB 出现的几率较小。就算出现了,写法也是会有区别的。

s****s UID.1159910
2017-03-01 使用 Lumia 640 XL 回复

用VB.NET的不多,学校也不教

tmp00000 UID.995403
2017-03-02 回复

Quotesscs 发表于 2017-3-1 23:22
用VB.NET的不多,学校也不教


学校当然不教了。学这个对于找工作几乎没有帮助。

tmp00000 UID.995403
2017-03-02 使用 Lumia 1520 回复

Quotesscs 发表于 2017-3-1 23:22
用VB.NET的不多,学校也不教


学这门语言一般情况下是自己用的。自己的项目代码可读性高更利于满足周围人的好奇心,而且更容易写出可维护性强的代码。

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报