0

私はいくつかのオブジェクトの構成で遊んでいます。

私は2つのクラス(ノートとタスク)を持っています。タスクは拡張メモであるため、Task クラスは Note クラスから派生します。

Property Child as list (of note)メモまたはタスクを既存のメモまたはタスクに追加できるため、各メモにはプロパティがあります (したがって、この「子」メモはタスクまたはメモである可能性があります)。

すなわち。

dim x as new note()

x.Child.item(0).Child.item(0).Child.item(0).description.ToString()

最後の子メモ オブジェクトは実際にはタスクですが、この集計を機能させるにはどうすればよいですか? メモでもタスクでもかまいませんが、基本クラスまたは拡張クラスの機能をリリースしたいと思います。

私がすぐに考えたのは、各オブジェクトにはタスクのリストとメモのリストが必要であるということでしたが、もっと洗練された解決策があるように感じました。

誰もこれについて何か考えがありますか?

4

2 に答える 2

0

Note オブジェクトのコレクションは、すでに必要なものを提供しているはずです。

Note と Task を区別する必要がある場合は、インスタンスが「typeof」Task であるかどうかを確認し、適切にキャストして、派生したプロパティとメソッドを取得できます。

必要なメソッドとプロパティが基本クラスの一部である場合、キャストする必要はありません。ポリモーフィズムを利用して、型に適したメソッド/プロパティを呼び出すことができます。

于 2012-05-18T09:53:34.060 に答える
0

私があなたを正しく理解していれば、私たちC#の人々が仮想メソッド/プロパティと呼ぶものを使用してクラスの動作を実装する必要があります...基本的に、適切な機能が正しいクラスから呼び出されるように、遅延バインド呼び出しを使用します-親であることまたは派生クラス。

VB.Netの同等物は「オーバーライド可能」と「オーバーライド」だと思います。

于 2012-05-18T08:43:40.337 に答える