1

如何将一个对象值传递给另一个需要相同值的对象例如:如果我有

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

调用一个方法来获取所有的联系信息,现在我有可用的contact.id

调度程序方法期望 personId 是 contact.id 没有做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 回答