成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET中有用的通用對象列表

開發 后端
本文介紹的是VB.NET中通用對象的概念。Generics在很多方面增強了VB.NET的功能及其靈活性,由此我們可以在同樣列表對象中獲得更好的性能以及更多的編程選項。

要使用List(of T),我們需要了解如何部署.NET框架所提供的多種方法。這也將是本文要介紹的內容。我已經編寫好了三個示例——使用ForEach, FindAll,和Sort——來闡述同樣列表類的工作原理。

第一步是要創建一個同用列表。你可以從多種途徑獲取數據,但是最簡單的方法是添加。文本中,我們會編寫代碼以便為舉例中的集來分類。因此,下面我們就來講講創建集的代碼。

首先,我需要一個能代表集中的Bottle的對象。為此而編寫的代碼是完全符合標準的,而且事實上,VB.NET 2008 Express Intellisense會為你寫好大部分的代碼。以下是我的對象:

Public Class Bottle 
"internalProperties"

Public Property Brand() As String

Public Property Name() As String

Public Property Category() As String

Public Property Size() As Decimal

Public Sub New( _

End Sub

End Class

為了創建集,我需要添加項目:

Dim Cabinet As List(Of Bottle) = _ 
"New List(Of Bottle)

Cabinet.Add(New Bottle( _

"Castle Creek", _

"Uintah Blanc", _

"Wine", 750))

Cabinet.Add(New Bottle( _

"Zion Canyon Brewing Company", _

"Springdale Amber Ale", _

"Beer", 355))

Cabinet.Add(New Bottle( _

"Spanish Valley Vineyards", _

"Syrah", _

"Wine", 750))

Cabinet.Add(New Bottle( _

"Wasatch Beers", _

"Polygamy Porter", _

"Beer", 355))

Cabinet.Add(New Bottle( _

"Squatters Beer", _

"Provo Girl Pilsner", _

"Beer", 355))

所有的這些都是VB.NET1.0中的標準代碼。但是,要通過定義我們自己的Bottle對象來注明。我們會在相同集中的多類型中獲益。

下面我們將介紹ForEach, FindAll, 和Sort方法。

我們使用這些方法的時候,就會發現其中的樂趣了。首先,讓我們部署ForEach方法。微軟文件包含了其使用句法定義。

Dim instance As List 
Dim action As Action(Of T)

instance.ForEach(action)

微軟進一步將委派行為定義為一種可以將對象傳遞的行為進行演示的一種方法。目前的List(T)要素是單獨傳送到Action(T)代表的。

第一件要做的事就是需要編寫被委派方法的代碼。對這一關鍵點存在誤區是大部分人對于VB.NET感到困惑的原因。該項功能或子程序是所有用于Of類型對象的自定義編碼所完成的場所。當我們能夠正確使用這一功能時,過程就很簡單。在我們的舉例中,對它的使用很簡單。Bottle的整個示例都被傳送了,且子程序會從中抽選出任何需要的數據。

Sub displayBottle(ByVal b As Bottle) 
Console.WriteLine(b.Brand & " - " & b.Name)
End Sub

編寫ForEach方法本身是很簡單的,只需要填寫代表的地址就可以了。

Cabinet.ForEach(AddressOf displayBottle)

FindAll稍微有些復雜。微軟關于FindAll的說明如下:

Dim instance As List 
Dim match As Predicate(Of T)

Dim returnValue As List(Of T)

returnValue = instance.FindAll(match)

現在,在我們的句法中出現了不同的要素,Predicate(T)。據微軟稱,這將代表定義了一套標準以及能確定指定對象是否符合這些標準的方法。換句話說,我們可以創建任何能在列表中找尋數據的代碼。我編寫的Predicate(Of T)可以對Beer種類進行搜尋:

Function findBeer(ByVal b As Bottle) _ 
As Boolean

If (b.Category = "Beer") Then

Return True

Else

Return False

End If

End Function

FindAll返回的是整個List(T)而不是調用列表中每個項目的代表代碼。這個List(T)只包含匹配Predicate(T)的數據。對第二個List(T)的定義和操作也取決于我們編寫的代碼。重復一遍,我的代碼是為免冗繁而簡化了。

Dim sublist As List(Of Bottle) 
sublist = Cabinet.FindAll(AddressOf findBeer)

For Each result As Bottle In sublist

Console.WriteLine(result.Brand & " - " & result.Name)

Next

本文探討的最后一個方法是Sort。微軟使用了一些你或許并不熟悉的術語對其進行解釋。其實有四個不同的Sort方法負載:

1. Sort()

2. Sort(Icomparer(T)

3. Sort(Comparison(T)

4. Sort(Int32,Int32,Icomparer(T)

這讓我們能夠用.NET框架中定義的Sort方法編寫自己的代碼或者只是通過使用起始位置和計數參數來收集集合的一部分。

在這個例子中,我為自己的比較器編寫了另一個代表。由于我希望通過我的分類方式來分類,于是就只是抽去了傳所送的Bottle對象中每個例子的值。

Private Shared Function sortCabinet( _ 
ByVal x As Bottle, ByVal y As Bottle) As Integer

Return x.Category.CompareTo(y.Category)

End Function

Sort方法實際上對原始List(T)進行了重新排列。所以這就是該執行該方法后發生的一個過程。

 Cabinet.Sort(AddressOf sortCabinet) 
For Each result As Bottle In Cabinet

Console.WriteLine(result.Brand & " - " & result.Name)

Next

這些方法被選擇用來闡述List(T)中編寫框架方法代碼的主要方式。你會發現它們使得List(T)更加有用。

【編輯推薦】

  1. VB.NET和C#逐層橫向對比
  2. VB.NET和C#的發展與動態語言運行時
  3. 用VB.NET 2008編寫數據查詢窗體
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-11-03 13:33:39

VB.NET對象列表

2009-10-09 15:59:41

VB.NET對象

2009-10-14 13:21:46

VB.NET Acco

2009-10-30 11:20:54

VB.NET Proc

2010-01-12 18:05:38

VB.NET對象

2010-01-22 13:28:13

VB.NET對象克隆

2009-10-13 17:03:55

VB.NET面向對象

2009-11-02 16:22:16

VB.NET面向對象

2009-10-23 14:06:07

VB.NET類對象

2009-10-12 16:39:59

OracleTransVB.NET使用

2010-01-11 17:16:48

VB.NET快捷鍵

2010-01-15 16:59:52

VB.NET對象克隆

2009-06-29 10:50:18

VB.NET面向對象能力

2009-10-22 10:10:20

VB.NET Proc

2009-10-13 14:19:03

VB.NET面向對象編

2009-10-13 11:28:39

VB.NET面向對象編

2009-11-03 10:09:48

VB.NET對象

2010-01-21 12:55:08

VB.NET對象序列

2010-01-19 15:08:18

VB.NET對象成員

2010-01-13 11:18:24

VB.NET面向對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区不卡视频 | 羞羞的视频免费看 | 精品免费国产视频 | 国产精品日韩欧美一区二区三区 | 日韩高清av | 日本欧美国产在线观看 | 精品免费国产一区二区三区四区介绍 | 成人日韩 | 欧洲精品在线观看 | 欧美日韩一区二区三区四区五区 | 97超级碰碰 | 欧美午夜剧场 | 亚洲成人精选 | 久久精品国产一区二区电影 | 成人性视频免费网站 | 久久国产精品99久久久大便 | 国产美女久久久 | 99爱国产 | 精品国产高清一区二区三区 | 亚洲人成网站777色婷婷 | 精品综合在线 | 精品一区电影 | 久久久久久免费精品一区二区三区 | 国产高清在线精品 | 本地毛片 | 中文字幕av一区二区三区 | 久久精品99久久 | 在线免费看黄 | 欧美精品日韩精品国产精品 | 欧美老少妇一级特黄一片 | 亚洲国产成人一区二区 | 国产精品一区二区日韩 | 国产不卡视频 | 日韩二区 | 日本免费在线观看视频 | 91精品国产91久久久久久密臀 | 亚洲综合在线视频 | 一级免费看 | 久久久久久av | 国产免费一区 | 欧美国产视频 |