[转载]Visual Basic中的接口显式实现 & VB代码着色器
最近在博客园看到了多篇讨论C#“接口显式实现”的贴子,显式实现主要有两个功能:处理接口成员重名和隐藏实现接口的成员,还有一些与CLR内部原理有关的功能。如果VB程序员需要处理接口成员重名或者想隐藏实现接口的成员,可能也想要C#的接口显式实现功能,但是VB不提供显式实现的功能,换之以自由方式处理。VB实现接口用的是Implements语句指定所实现的接口成员,因此实现方法本身的名字和访问级别是任意的。假如Interface1和Interface2都有一个叫Test的成员,而开发者需要将实现Interface1.Test的方法设为Public,而实现Interface2的方法隐藏(Private),就可以这么写:
Public Sub Test() Implements Interface1.Test
End Sub
Private Sub Test2() Implements Interface2.Test
End Sub
这种做法在C#里已经无法实现了。而VB甚至可以让实现接口成员的方法为Protected或者Friend访问级别,还可以任意添加Overridable使它成为虚方法。所有这些都是自由的,不像C#接口显式实现那样受到约束。关于这条特征的原理,请参见《VB.NET是怎样做到的》。
此外,博客园最近改良了代码着色工具,使它能够折叠代码。这让我太羡慕了,不知道是不是只支持C#。目前VB.NET代码着色功能都不太完善,很多地方上色不对,而且不支持将标识符、字符串、运算符等分别着色,控制力不强。因此我想开发一个VB.NET的代码着色工具,基于微软的Visual Basic .NET Parser。但是我对折叠代码这方面不太熟,希望得到熟悉这方面的大虾的帮助。
页:
[1]