2013-01-19 199 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()。所有這些都沒有錯,而是取決於你所需要的邏輯哪個類/層是,沒有知道的領域,其很難說哪個是最好的。 將工作交給正確的班級。爲了更好地幫助您,請告訴我們爲什麼您認爲您的方法首先是錯誤的?

相關問題