2013-08-22 122 views
-3

嗨我想合併兩個對象在一起,這樣我就可以使用合併的對象做別的事情。它實際上是一個簡單的機場程序,我有「路線」和「」飛行「,如果我想要添加獲得票我需要每個航班在路線上,如果你知道我的意思。但請注意,我不想比較them.and我有他們每個對象的數組,如果它有幫助C#合併兩個或多個對象

IRoute R = new LocalRoute(port, destination, routenum); 
IFlight F = new LocalFlight(time, date,capacity); 
+5

這聽起來像你只需要以這兩個爲屬性創建一個類型。 (我個人預計航班會知道它的路線,請記住你 - 有什麼理由不對嗎?) –

+0

那麼這就是我想要的,一個航班應該知道它的路線,但是怎麼樣? –

+0

最好的方法是創建具有這兩個對象類型屬性的新類。然後,您可以添加一個構造函數,該構造函數接受兩個對象的所有參數,以便可以在一次調用中初始化這些參數。 –

回答

2

我會給Flight對象一Route財產。這對我來說比創建一個班級同時擁有一個航班和一條航線更有意義,因爲在現實世界中,航班應該知道它必須採用哪條航線。

例如:

public class Route { 
    public int Number { get; private set; } 

    public string Port { get; private set; } 

    public string Destination { get; private set; } 

    public Route(int number, string port, string destination) { 
     Number = number; 
     Port = port; 
     Destination = destination; 
    } 
} 

public class Flight { 
    public DateTime DepartureTime { get; private set; } 

    public int Capacity { get; private set; } 

    public Route Route { get; private set; } 

    public Flight(DateTime departureTime, int capacity, Route route) { 
     DepartureTime = departureTime; 
     Capacity = capacity; 
     Route = route; 
    } 
} 

然後你就可以有可能的路線列表和航班的列表,每個都有一個路由的參考。

1

這會你在找什麼?

public class FlightDetails 
{ 
    IRoute Route {get;set} 
    IFlight Flight {get;set;} 
} 
0

爲了更清晰的畫面,你可以做這樣的事情

public class FlightDetails 
{ 
IRoute Route {get;set} 
IFlight Flight {get;set;} 

public FlightDetails(IRoute r,IFlight f) 
{ 
    this.Route = r;this.Flight = f; 
} 
} 

IRoute R = new LocalRoute(port, destination, routenum); 
IFlight F = new LocalFlight(time, date,capacity); 

FlightDetails Fd = new FlightDetails(R,F);