让C#眼红的VB.NET属性

什么是XML Literal呢?
"XML Literal"是在VB.NET 9.0引入的一个用于构建XML对象的新特性。VB.net有了如此神器,现在轮到C#程序员羡慕了。当然这篇文章不是说如何使用XML Literal的,关于这个新特性的更多信息可以参考MSDN:
http://msdn.microsoft.com/en-us/library/bb384629.aspx

有了XML Literal之后,我们如何用它解决VB.Net中多行字符串的问题呢?来看示例:

Dim sourceText As String =
    <string>  

        Imports Microsoft.VisualBasic
        Imports System
        Imports System.Collections
        Imports Microsoft.Win32
        Imports System.Linq
        Imports System.Text
        Imports Roslyn.Compilers
        Imports System.ComponentModel
        Imports System.Runtime.CompilerServices
        Imports Roslyn.Compilers.VisualBasic  

        Namespace HelloWorld
          Module Program
            Sub Main(args As String())
              Console.WriteLine("Hello, World!")
            End Sub
          End Module
        End Namespace
    </string>

  

 

对比一下前面的代码,有没有发自内心的想说出“我靠”两个字?

比较明显的变化就是没有了As String的显式类型声明,然后后面调用.Value属性以确定这个变量确实是字符串。实际上与上面代码相比,这两段代码在编译、运行时并没有什么区别。也许第二种更漂亮些?

更厉害的是,我们还可以这样写:

Dim contact2 =
        <contact>
          <name>Patrick Hines</name>
          <%= From p In phoneNumbers2
            Select <phone type=<%= p.Type %>><%= p.Number %></phone>
          %>
        </contact>

  

所以以后不要嘲笑VB.NET 不能方便的写字符串了!!

另外吐槽VB.NET 不能多行语句写在一行的我也要说一下,这个在VB6之前就出现的产物你们不知道?且看:

Dim a, b As String : a = 1 : b = "abc"

  

时间: 2024-10-12 08:07:54

让C#眼红的VB.NET属性的相关文章

windows的消息传递--消息盒子

使用delphi的消息机制可以方便操作后台,其中重要的就是sendmessage()函数.下面讲解一下这个函数 [delphi] view plain copy function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; 其中四个参数的含义和说明如下:1.hWnd:对象的句柄.希望将消息传送给哪个对象,就把该对象的句柄作为实参传送,在 VB 中可以简单地用“对象.hW

SendMessage函数的常用消息及其应用

SendMessage函数的常用消息及其应用(有点长,希望能对大家有所帮助)函数原型: Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 其中四个参数的含义和说明如下: 1.hWnd: 对象的句柄.希望将消息传送给哪个对

selenium入门:css定位

Selenium极力推荐使用css定位,而不是XPath来定位元素,原因是css定位比XPath定位速度快,语法也更加简洁. css常用定位方法 1.find_element_by_css_selector() 2.#id  id 选择器根据id属性来定位元素 3. .class   class选择器,根据class属性值来定位元素 4. [attribute='value'] 根据属性来定位元素 5.element>element 根据元素层级来定位   父元素>子元素 例子: from s

history of program(language)

Visual Basic从1991年诞生以来,现在已经13年了.BASIC是微软的起家产品,微软当然不忘了这位功臣.随着每一次微软技术的浪潮,Visual Basic都会随之获得新生.可以预见,将来无论微软又发明了什么技术或平台,Visual Basic一定会首先以新的姿态登上去的.如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择Visual Basic. 1991-西雅图夜空的雷电随着Windows 3.0的推出,越来越多的开发商对这个图形界面的操作系统产生了兴趣,大量的Wind

VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

在VB中,属性是可以有参数的 -- 即: VB的语法,使用参数的不一定是方法,也有可能是属性!(虽然属性的本质是方法) 例一:参数当作"索引"使用 定义一个类模块,模块名称Ints.为简化模型,使用了只读属性. 1 Private arr(3) As Integer 2 3 Public Property Get ArrValue(Index As Integer) As Integer 4 ArrValue = arr(Index) 5 End Property 6 7 '初始化ar

利用VB文本框选择文本内容的属性实现指定邮件号码的轨迹查询

作者:iamlaosong 在程序中,对文本框中文本内容进行选择时,用SelStart.SelLength.SelText属性3个属性来标识用户选中的正文.这些属性没有列在属性窗口中,但在程序中可以使用这些属性. SelStart:选定正文的开始位置,第一个字符的位置是0. Selcength:选定正文长度. SelText:选定正文内容. 设置了SelStarl和SelI~ength属性后,VB会自动将设定的正文送入SelText属性存放.这些属性一般用于在文本编辑中设置插入点及范围,选择字符

vb asp.net的一些属性值

AutoGenerateColumns 就是自动产生列的意思gridview等控件,如果设置了AutoGenerateColumns=true,就能够根据数据源的实际情况,自动生成gridview表格列,如果设置为AutoGenerateColumns=flase,那么程序员就必须要手动编写gridview控件的columns集合,否则即使正确帮定了数据,gridvew也什么都不显示,因为没有定义列,同时也没有自动让他自己生成列 C#datagridview没有AllowPaging属性 自己分

VB中的属性、方法和事件概念解析

Visual Basic 语言中的所有对象都有它们自己的属性.方法和事件,其中包括窗体和控件.可以将属性视为对象的特性,将方法视为对象的操作,而将事件视为对象的响应. 日常生活中的对象(如氦气球)也具有属性.方法和事件.气球的属性包括可见特性,例如它的高度.直径和颜色.其他属性 (Property) 描述了它的状态(充气或放气)或不可见属性 (Attribute),如它的使用年限.尽管每个气球的属性值可能各不相同,但是所有的气球都具有这些属性. 气球也具有它可以执行的已知方法或操作.它具有充气方

vb代码之---打开文件或文件夹属性

打开一个文件夹或者一个文件该怎么写?当然是ShellExecute函数了,但是他不能完成文件属性窗口的调用. 要想调用一个文件的属性窗口,就要用到ShellExecute的扩展ShellExecuteEx了 先看怎么声明 Private Declare Function ShellExecuteEx Lib "shell32.dll" (ByRef lpExecInfo As SHELLEXECUTEINFOA) As Long 参数很简单,只有一个SHELLEXECUTEINFOA,