中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單說明VB.NET默認屬性

發布時間:2021-09-03 14:35:40 來源:億速云 閱讀:127 作者:chen 欄目:編程語言

這篇文章主要講解了“簡單說明VB.NET默認屬性”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“簡單說明VB.NET默認屬性”吧!

在向大家詳細介紹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默認屬性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九寨沟县| 甘泉县| 石阡县| 丁青县| 拉萨市| 凤山市| 沙湾县| 安化县| 太和县| 镇原县| 灵宝市| 固阳县| 南澳县| 绍兴市| 郁南县| 加查县| 阿拉善右旗| 小金县| 获嘉县| 鄢陵县| 栖霞市| 六枝特区| 长春市| 揭西县| 东光县| 苏州市| 新津县| 枝江市| 烟台市| 卢氏县| 东阳市| 泾源县| 大冶市| 东乌珠穆沁旗| 项城市| 乌拉特中旗| 灵石县| 海原县| 绥芬河市| 深州市| 黄石市|