Client
オブジェクトの保持に特化した汎用List(Of T)
classを使用してください。 1行のコードを書かなくても、あなたが望むすべてのメソッドをすでに提供しています!あなたはすべて保持するためにList(Of T)
を作成し、その後
Public Class Client
Public Property Name As String
Public Property AmountOwned As Decimal
Public Sub Bill()
BillingManager.BillClient(Me)
End Sub
' ... etc.
End Class
:
は、だから、最初に「クライアント」に関連するプロパティ(データ)とメソッド(アクション)の全てを含んでい
Client
クラスを記述します何らかの理由で、あなたが
に必要な、場合 Dim clients As New System.Collections.Generic.List(Of Client)
、をAdd
の動作を特化:Client
クラスのインスタンスのなどのメソッドをコレクションクラスで提供したり、追加のメソッドを追加する場合は、戦略を少し変更する必要があります。 Instead of using List(Of T)
、あなたはCollection(Of T)
から継承し、そのようにカスタム・コレクション・クラスを作成します。
Public Class ClientCollection
Inherits System.Collections.ObjectModel.Collection(Of T)
' ... customize as desired ...
End Class
それが書かれていたため、ジェネリック医薬品は、フレームワークに導入される前のWinForms ListBox
クラスは、まさにこのようにそれを実行しません。しかし、今ここにいるので、可能な限り常にそれらを使用してください.WinFormsがどのように動作するかは完全に無視できます。
あなたは本当に 'List(Of T)'から継承するべきではありません。それは継承されるようには設計されておらず、 'Add'メソッド(他のものの中でも)は仮想(上書き可能)ではありません。推奨されるアプローチは 'Collection(Of T)'を継承するか、 'IList(Of T)'インタフェースを実装することです。 –
私はそれをオーバーライドせず、オーバーロードして、顧客オブジェクトを追加するのではなく、顧客名を指定するだけで顧客を追加することができます。 'List(Of T)'が継承されるように設計されていない場合は、 'NotInheritable'となっていました。 –
ありがとうございます、必要に応じて正確に動作します:) –