日期:2014-05-20 浏览次数:21027 次
fuction end fuction if end if for next
------解决方案--------------------
接触.net的时候我已经脱离vb6快半年了...
------解决方案--------------------
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer) Dim i As Integer = myWidth Dim obj As [Object] For Each obj In myList If i <= 0 Then i = myWidth Console.WriteLine() End If i -= 1 Console.Write("{0,8}", obj) Next obj Console.WriteLine() End Sub 'PrintValues
------解决方案--------------------
好多人都说是喜欢C#简洁明了,少打好多字,节约时间
其实vb.net的代码可读性更好,看见end if就知道和if匹配,如果看到一个}要一眼看出和那个匹配还是要费点眼神的。
少打好多字也不太成立,现在的ide明显vb.net比c#的代码提示要好,一般只要打第一个字符,都可以补全了,而且比如定义变量,c#要先写好类型的第一个字符,很多情况下,不知道第一个字符是什么,还的打快捷键才能选择,vb.net里定义变量,非常顺手的as一下,全部类型都出来了,况且{}需要小拇指去打,打不快的,vb里,如果输入一个do 自动补全do while 和loop,我相信肯定是打do比打{要快点多吧。
其实很多c#的程序员从来就没有正眼看过vb.net,根本就不了解vb,更没有使用过vb,何来比较一说,在他们眼里vb从来就是一个玩具,殊不知vb早已进化为和c#平起平坐的net语言重要的成员,可还有人说VB是面向过程的,唉。
新版的C#4,加了一些可选参数等等功能,可这些vb早就有了,有些lambda 表达式虽然vb没有,不过匿名委托还是一样可以用的,只是看着多几个字符而已,功能并不缺。
------解决方案--------------------
我们来看看楼上举的例子吧
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
public static void PrintValues(IEnumerable myList, int myWidth ) {
sub比void短,还少一个{, vb的变量需要一个As,不过这样就不用考虑类型名称的首字符和打快捷键,Integer比int长,不过输入int按tab已经可以补全
Dim i As Integer = myWidth
int i = myWidth;
少一个;号,同样的原因,类型定义后置,看着字符多,其实更方便。
Dim obj As [Object]
For Each obj In myList
foreach ( Object obj in myList ) {
这里vb也是可以合并成一句的,而且不应该有Object加[]的情况,不知道为什么加上?