0

List<String>a を返す場合とaを返す場合のパフォーマンスに違いはありますStringListか? ここで、StringList は次のように定義されます。

class StringList : List<String> { }

IntListこれは、またはObjectListまたは またはControlListなどMyCustomClassList、すべて同様の方法で定義された他の定義済みリストにもカウントされます。

私が見た唯一の違いはコード内の可読性です.パフォーマンスの違いはコンパイラによって最適化されますか?

第二に、StringList を定義するためのより良い方法はありますか、それともこの方法が唯一の方法ですか?

4

3 に答える 3

5

List<string>メソッドの追加、メソッドのオーバーライドなど、の機能を拡張する予定はありますか? そうでない場合、この新しいクラスを追加しても意味がありません。

そして、読みやすさについてはわかりません-誰かが見List<string>た場合、これが文字列の一般的なリストであり、何を期待すべきかを知っていると確信しています。しかし、彼はクラスが何をするのか確信が持てずStringList、ソース コードに飛び込む必要があります。つまり、ソース コードが利用できない場合は、Reflector などのツールを使用することになります。

于 2013-05-13T11:42:49.107 に答える
3

あなたの場合、パフォーマンスに大きな違いはないはずです。

定義するより良い方法は次のStringListようになります

using StringList = System.Collections.Generic.List<string>;

その定義に追加したくないことがより明確になるからです。class何かを拡張したい場合は、継承を作成/使用するのが良い方法です。

List<string>ただし、すべての C# プログラマーはそれが何であるかを知っているので、使用することをお勧めします。考えられるすべてのデータ型に対してカスタム定義を行うと、コードが不要になり、読みにくくなります。

于 2013-05-13T11:42:35.940 に答える