私のオブジェクトのコンストラクタに文字列配列を渡していますが、それらは関連していますが、コレクションを操作する必要はありません(並べ替えやその他の配列操作)受信クラスの変数私は簡単に6文字列ではなく、配列を渡すと便利だとわかります。これはパフォーマンスの問題につながりますか?文字列配列または6文字列をコンストラクタに渡す方が効率的ですか?
答えて
パフォーマンスは本当に問題ですか?小さな視点の場合はEric Lippert's performance rantとお読みください。
さらに重要なことはデザインです。あまりにも多くのパラメータを持つメソッドを避けたいので、値が本当に類似した型の独立した値の集合である場合は配列を渡すか、これらの値が論理的に何らかの "形式"に属する場合はプロパティを持つクラスを作ります私はここで "クラス"という言葉を避けようとしていますが、それは実際にそれを最もよく表しています)。
リンクをありがとう、私はそれが非常に有用であることを発見しました。 –
わずか6つのオブジェクトの配列では、パフォーマンス上の問題はありません。
コードの可読性と保守性が最も重要です。6つの明確に名前が付けられたパラメータを持つコンストラクタは、文字列の配列をとるコンストラクタよりも読みやすくなります。
は、これらの2つの例を考えてみましょう:
Employee1(string first, string last, string position) {
...
}
Employee2(string[] args) {
...
}
Employee2
の呼び出し側がでどの位置になっている引数を知る必要があるだろうが、各パラメータの目的を説明するIDEプロンプトを取得しますEmployee1
の呼び出し元アレイ。コンストラクタに名前付きパラメータを渡す
代替のみEmployee1
のユーザに利用可能である:また
var manager = new Employee1(position:"manager", first:"Vincent", last:"Nwonah");
、Employee2
の実装は、より少ない三つの要素又は有する配列を渡す発信者を心配する必要があります3つ以上の要素を持つ配列
簡潔に言えば、Employee1
は、はるかに読みやすくメンテナンス可能な代替品です。
私はあなたの意見を得るが、私の状況では、渡す配列は、私が渡すことのない値が変わることはありません。私は、ユーザーを認証し、そのユーザーの詳細をデータベースから 'userDetailsArray'と読みます。ユーザがセッション中に使用する他のすべてのクラスは、自分の特権、ユーザ名、年などを知る必要があります。どのディテールがどの配列のインデックスに入るかに関して、詳細を配列に書き込んだ気がします。パフォーマンスの問題がなければ、配列を渡すことはこの特定の状況でより読みやすくなると思います。 –
- 1. 文字列のリストで文字列を効率的に検索するには?
- 2. 文字列対文字配列対文字列作成者(効率性能)
- 3. OpenSkyApi:文字列または文字列の配列ですか?
- 4. 配列を作成する最も効率的な方法は? Int =>配列文字列または文字列=>配列整数?
- 5. 文字列を別の文字列に効率的に挿入する
- 6. オブジェクト配列のリストの効率的な文字列連結
- 7. 1文字の文字列またはcharを追加する方が効率的ですか?
- 8. 効率的な文字列の比較
- 9. 文字列の目的の文字列に値を渡す
- 10. 文字ベクトルを文字列に変換する最も効率的な方法
- 11. Cで文字列の配列内の文字列を効率的に検索する(大文字と小文字を区別しない)
- 12. linqで効率的に文字列を結合するには?
- 13. 文字配列を渡しますか?
- 14. は、文字列、文字列配列マップ
- 15. 文字列が有効なMD5またはSHA1チェックサム文字列
- 16. 文字列のストリームをグループ化された文字列リストに変換する効率的な方法
- 17. 文字列を扱うための最も効率的な配列
- 18. VBの文字列配列の最初の6文字列を取得する
- 19. Javascript:文字列を整数に変換してから文字列に戻す最も効率的な方法
- 20. 動的文字列配列のコンストラクタとnullが返される
- 21. 空の文字列またはnullをDirectoryEntryコンストラクタに渡す
- 22. ベース64文字配列または文字列azureサーバーの長さが無効
- 23. scanf文字列をC++のパススルーアドレスでグローバル文字配列に渡すには?
- 24. Objective-Cで整列した文字列値を効率的に作成する
- 25. 文字列をファイナライズせずに文字列を渡す方法
- 26. C/C++で文字列、配列、ポインタを格納する方が効率的ですか?
- 27. リストビューやループを文字列配列で更新する方が効率的ですか
- 28. PHP PDO - 動的文字列配列をJavaScriptに渡す
- 29. HttpClientのクエリ文字列内で配列を渡す方法は?
- 30. 文字配列に文字列を埋めますか? C++
メソッドが呼び出される頻度などを知らなくてもパフォーマンスの問題が発生するかどうかを知ることは難しいです。私にとって、これはマイクロ最適化の匂いです。最も明白なことを正しく実行します(つまり、少なくとも驚きの原則に違反しないでください)。あなたが何年もの間にコードに戻ったとき、それはまだ意味をなさないでしょうか?特に、固定数のパラメータが必要なときに配列を渡すと、 'var something = someArray [0]'のようなコードを書くことになります。 – spender
@spenderあなたの意見は答えがあるはずだと思います – jfs