2013-01-19 3 views
1

어떻게 예를 들어 같은 값 을 필요로 다른 개체를 하나 개의 개체 값을 전달 할 : 나는 연락처 정보를 모두 얻을 수패스 하나의 개체 값

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

전화하는 방법이 경우 이제는 contact.id를 사용할 수 있습니다.

contact.idscheduler.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()를 호출 할 수 있습니다 .. 그 어떤 것이 최고인지 말하기가 어렵습니다. 올바른 직업을으로 지정하십시오. 더 나은 방법을 원한다면 왜 처음부터 접근 방식이 잘못되었다고 생각하십니까?