十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要讲解了“简单说明VB.NET默认属性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“简单说明VB.NET默认属性”吧!
创新互联专注于企业网络营销推广、网站重做改版、灌阳网站定制设计、自适应品牌网站建设、成都h5网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为灌阳等各大城市提供网站开发制作服务。
在向大家详细介绍VB.NET默认属性之前,首先让大家了解下TextBox的默认属性是Text,然后全面介绍VB.NET默认属性。在原先的VB6里,有一项奇特的功能——默认属性。在VB6中,对象的名称可以直接表示该对象的默认属性。比如TextBox的默认属性是Text,所以下面的代码
Text1.Text = "Hello"
就可以简化为
Text1 = "Hello"
这种简化给VB带来了很多麻烦,赋值运算就需要两个关键字——Let和Set,结果属性过程也需要Let和Set两种。而且这种特征在后期绑定的时候仍能工作。到了VB.NET,这项功能被大大限制了,现在只有带参数的属性才可以作为默认属性。如
List1.Item(0) = "Hello"
可以简化为
List1(0) = "Hello"
这种语法让有默认属性的对象看起来像是一个数组。那么VB怎么判断一个属性是否是默认属性呢?看下列代码
Public Class PropTest Public Property P1(ByVal index As Integer) As String Get End Get Set(ByVal Value As String) End Set End Property Default Public Property P2(ByVal index As Integer) As String Get End Get Set(ByVal Value As String) End Set End Property End Class
P1和P2两个属性基本上完全相同,***的不同是P2带有一个Default修饰符。反汇编这个类以后,可以发现两个属性完全相同,没有任何差异。但是PropTest类却被增加了一个自定义元属性System.Reflection.DefaultMemberAttribute。这个元属性指定的成员是InvokeMember所使用默认类型,也就是说后期绑定也可以使用默认属性。可是我试验将DefaultMember元属性手工添加到类型上却不能达到让某属性成为默认属性的功能。看来这项功能又是VB的一项“语法甜头”。但是,VB或C#的编译器对别人生成的类的默认属性应该只能通过 DefaultMemberAttribute来判断,所以我将一个VB类只用DefaultMemberAttribute指定一个默认方法,不使用 Default,然后将它编译以后给C#用,果然,C#将它识别为一个索引器(indexer)!
感谢各位的阅读,以上就是“简单说明VB.NET默认属性”的内容了,经过本文的学习后,相信大家对简单说明VB.NET默认属性这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!