以前在学校时,编写代码都是使用C#,习惯了C#的代码习惯,等工作后由于工作需要逐渐的开始采用了VB.NET开发项目,渐渐地喜欢上了VB.NET,现在我就罗列一些VB.NET加速代码开发的方法。
一、智能感知
做.NET开发的许多人都知道作为微软.NET中2大语言VB.NET和C#,VB.NET在智能感知上比C#强上许多,
1、自动补完,在VB.NET中如果输入VB.NET关键字,当敲击enter后,VS会自动帮助你补完剩余的代码
比如:输入try等后敲击enter,VB.NET会自动生成
12345Try
Catch
ex
As
Exception
End
Try
这样程序员就可以不必再输入catch代码,可以直接编写业务逻辑代码(VB.NET中的关键字都会有类似效果,大家有兴趣可以自己尝试)
当然在C#中也可以通过Snippets来完成,但是C#的Snippets大大少于VB.NET,从下图中就可以看出
VB.NET
C#
2、代码自动格式化
在VB.NET中只要敲击enter就会自动对当前文档格式化,无需像C#中需要手动Ctrl+K,Ctrl+F(虽然在C#中写完一段代码VS也会自动格式化但是效果远远比不上VB.NET),这种自动格式化,减少了在书写代码过程中的许多工作量,而且如果碰上一个不喜欢格式化代码的人,VB.NET可以自动帮助格式化,这样后面的人来阅读代码会更加方便。
3、智能感知
在.NET3.5中,添加了linq,我们会经常书写这样的代码,如:
VB.NET
C#
从上图我们可以清楚的看到,VB.NET可以从LINQ语句中自动推断出linq变量的类型,而C#却不行,当我们在书写复杂的LINQ语句时,这种提示是很有用的,而且在foreach等遍历对象时,VB.NET基本上都能自动推断出变量的类型,但是C#不行必须程序员手动的给变量指定类型。
同时,在VB.NET中,还有个好处就是不区分大小写,例如:我们在做ASP.NET开发时由于某些情况下是没有智能感知提示的所以经常需要靠记忆力来书写代码,像在页面中写javascript书写:
1var
txt=document.getElementById(“<%=Text1.ClientID%>”);
来获取文本框的客户端ID,在C#中必须书写Text1.ClientID否则会报错,而VB.NET则可以写成Text1.ClientId。
又比如,在C#编写过程中我们都会要书写using System;来引用命名空间,但是此时如果你直接写using system.这时按“.”智能提示将不会有任何提示,应为system的首字母为小写,必须要将原有的system删除,书写正确的首字母大写的System才行,这种智能感知无法正常提示的情况在C#很常见(当然在VS2010中已经被很好的优化了),而VB.NET就不会出现这样的问题,你在书写的每一步无论你书写大小都能被正确的识别
当然这种智能感知还体现在VB.NET的许多方面。
4、命名空间导入
在C#开发中有件很令我痛苦的就是命名空间导入,每当我新建一个类时我可能就需要重复导入命名空间,这样一个项目下来上百个类得重复导入很多命名空间。而VB.NET则很好的解决了这个问题,当你新建一个VB.NET类或模块,会发现这个类很干净:
仅仅只有类的定义,没有像C#那样默认导入了几个必备的命名空间,如System,System.Text等,这是因为VB.NET在建立项目的同时已经帮助你引用好了,winform项目可以通过查看项目属性引用中查看 在asp.net可以在web.config中查看到:
123Public
Class
A
End
Class
1234567891011121314151617181920212223<
pages
enableSessionState="true">
<
namespaces
>
<
clear
/>
<
add
namespace="System"/>
<
add
namespace="System.Collections"/>
<
add
namespace="System.Collections.Generic"/>
<
add
namespace="System.Collections.Specialized"/>
<
add
namespace="System.Configuration"/>
<
add
namespace="System.Text"/>
<
add
namespace="System.Text.RegularExpressions"/>
<
add
namespace="System.Linq"/>
<
add
namespace="System.Xml.Linq"/>
<
add
namespace="System.Web"/>
<
add
namespace="System.Web.Caching"/>
<
add
namespace="System.Web.SessionState"/>
<
add
namespace="System.Web.Security"/>
<
add
namespace="System.Web.Profile"/>
<
add
namespace="System.Web.UI"/>
<
add
namespace="System.Web.UI.WebControls"/>
<
add
namespace="System.Web.UI.WebControls.WebParts"/>
<
add
namespace="System.Web.UI.HtmlControls"/>
</
namespace
>
<
pages
>
栏目列表最新更新如何使用OS模块中的stat方法 Python os 模块 seek() 方法 python打开文件实例1 Python写入文件 什么是流? 文件操作如何进制逐行读取 Python相对路径 with创建临时运行环境 Python文件操作 .Net Standard(.Net Core)实现获取配置信息 Linux PXE + Kickstart 自动装机 Shell 编程 基础 Shell 编程 条件语句 CentOS8-网卡配置及详解 Linux中LVM逻辑卷管理 1.数码相框-相框框架分析(1) Ubuntu armhf 版本国内源 Linux中raid磁盘阵列 搭建简易网站 access教程之Access简介 mysql 安装了最新版本8.x版本后的报错: Mysql空间数据&空间索引(spatial) 如何远程连接SQL Server数据库的图文教程 复制SqlServer数据库的方法 搜索sql语句 sql中返回参数的值 sql中生成查询的模糊匹配字符串 数据定义功能 数据操作功能