1

あるオブジェクト値を、同じ値を必要とする別のオブジェクトに渡すにはどうすればよいですか?たとえば:

Contact contact = new Contact();
Scheduler scheduler = new Scheduler();

すべての連絡先情報を取得するメソッドを呼び出すと、contact.id が利用可能になりました

contact.id である personId を期待しているスケジューラー メソッドを実行せずscheduler.personId = contact.idに、値を LoadScheduler に渡す適切な方法は何ですか? どうも

private void LoadSchedule(Scheduler scheduler)
{
...
}
4

1 に答える 1

0

あなたのしていることは間違っていません。

scheduler.personId = contact.id
LoadSchedule(scheduler);

そうでなければ、メソッドにはより良い引数が必要になります..

LoadSchedule(contact.id);
...
private void LoadSchedule(int contactId)
{

}

Schedulerしかし、そうすると、オブジェクトのすべてのフィールドにアクセスできるわけではありません。でもそれが大事なら..

あるいは:

LoadSchedule(contact);
...
private Scheduler LoadSchedule(Contact contact)
{
     Scheduler scheduler = new Scheduler { personId = contact.id };
     //load...
     return scheduler;
}

または、スケジューラ オブジェクトからスケジュールをロードするための適切なインスタンス メソッド (または拡張メソッド) を用意することもできます。

class Scheduler
{
    public void Load()
    {

    }
}

したがってscheduler.Load()、適切なインスタンスを取得したら、一度だけ呼び出すことができます..これらはすべて間違っているわけではありませんが、ロジックを配置する必要があるクラス/レイヤーによって異なります.ドメインを知らなければ、どれが最適かを判断するのは困難です. 適切なクラスに仕事を与えてください。より良い支援のために、そもそもあなたのアプローチが間違っていると思う理由を教えてください。

于 2013-01-19T12:32:57.793 に答える