1

parameters1または2 のような少量を受け取るメソッドを作成するのに最適な方法を知りたい.

最初の 1 つ: エンティティ クラス オブジェクトをパラメーターとして渡します。

MyClass entity = new MyClass();
BDClass bd = new BDClass();
entity.Name = "Alan";
bd.InsertName(entity);

public void InsertName(MyClass entity)
{
     ///A simple Insert/Select
}

2 つ目: OO でのプログラミングでも、エンティティ クラスの代わりに変数をパラメーターとして使用します。

BDClass bd = new BDClass();
string name = "Alan";
bd.InsertName(name);  

public void InsertName(string name)
{
  ///A simple Insert/Select
}

パフォーマンスとプログラミングの優れた実践を考慮して、どれが最適かを知りたいです。それとも状況による?つまり、エンティティクラスをパラメーターとして使用するのは、クラスの量が多く、パラメーターの量が少ない変数の場合にのみ使用する方がよいと思います。

コード自体とは何の関係もないことは知っていますが、どれが正しいプログラミング方法であるかを知りたいだけです

4

4 に答える 4

2

大きな違いはなく、正解です。2 番目の形式で記述でき、メソッド名がInsertNameであるため、2 番目の方が好みです。

なんで?まず、必要なのは名前 (文字列) だけです。それ以外の場合は、1 つのパラメーターだけでは十分ではありません。2 つ目は、名前の由来MyClassや場所に関係なく、任意の名前を渡すことができることです。

特定のタイプのオブジェクトを本当に渡すMyClass必要がある場合は、名前文字列のみを渡すことで置き換えることができない場合、オブジェクトから名前以上のものを必要とする場合に違いありません。その場合、MyClassの依存関係である可能性がありBDClassます。

于 2013-05-29T12:13:24.310 に答える
1

正当性が C# で有効であると定義されている場合、両方ともcorrectです。

用途に応じて、どちらかのパターンを選択できます。クッキーカッターのアプローチはなく、パフォーマンスの違いは見られません。

たとえば、タイプの既存のオブジェクトを検証する場合はMyClass、アイテム全体が必要です。多くのプロパティを持つオブジェクトを渡す場合や、必要なパラメーターの数が時間の経過とともに増加する場合も同様です。

于 2013-05-29T12:05:14.703 に答える
1

場合によります。

メソッドが (データ/ドメイン) エンティティを処理している場合、それはクラスであってはなりません。むしろ、IoC フレームワークの手段であるメソッドに渡すインターフェイスです。

別のクラスの形式で、他のコード ブロックに頻繁に渡す必要がある場合。その場合は、結果の型にマップされるエンティティ クラスを使用する方が簡単かもしれません。

それは何かを計算するだけの純粋な関数であり(アルゴリズムは変更されず、戦略パターンのようなものは使用しません)、名前付きパラメーターのみを使用できます。

これらはすべての可能性のある状況ではありません。これらは、このタスクを実行するための (IMHO) 良い方法です。

そして、私はいつも単純な名前付き引数から始めます! 時期尚早の最適化を避ける! コード内のパターンが出現するまで待ちます。

于 2013-05-29T12:05:37.173 に答える