首页 > 代码库 > 让C#眼红的VB.NET属性
让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"
让C#眼红的VB.NET属性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。