2013-01-19 256 views
1

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

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

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

调度方法期待一个personId是contact.id 没有做scheduler.personId = contact.id并将值传递给LoadScheduler什么是正确的方法? thx

private void LoadSchedule(Scheduler scheduler) 
{ 
... 
} 
+1

不知道你在问什么。 –

+0

有点失去你所要求的。设计看起来像什么?调度程序如何与联系人相关联?但无论如何,你为什么要通过ID链接的东西?如果调度程序与联系人有业务往来,则将联系人的实例传递给调度程序,并让调度程序执行与提供的信息相关的任何操作。如果你试图隐藏功能把它放在界面后面。但最重要的是:设计问题是什么? – bas

+0

这正是我想问的问题>>将联系人的实例传递给调度程序,并让调度程序执行它提供的信息所需的任何操作,所以我通过LoadSchedule(Scheduler,contact)? – user1934500

回答

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()。所有这些都没有错,而是取决于你所需要的逻辑哪个类/层是,没有知道的领域,其很难说哪个是最好的。 将工作交给正确的班级。为了更好地帮助您,请告诉我们为什么您认为您的方法首先是错误的?

相关问题