2011-10-11 27 views
1

我不知道究竟我的問題來看,也許這就是爲什麼我不能在這裏找到這樣的相關問題的原因。合併2款打入1個模型MVC

說,我有這些模型。

public abstract class Member 
{ 
    public string ID { get; set; } 
    public string Username { get; set; } 
    public int MemberType { get; set; } //1 if person; 2 if business 
    //public string MemberName { get; set; } 
} 

public class Person : Member 
{ 
    public string LastName { get; set; } 
    public string FirstName{ get; set; } 
} 

public class Business : Member 
{ 
    public string BusinessName { get; set; } 
    public string TaxNo { get; set; } 
} 

現在,我在使用流暢API訪問這些模型時沒有問題。

現在,我想要實現的是在我的Member類中添加一個屬性,該類是MemberName,如果MemberType爲1,並且BusinessType類的BusinessName如果MemberTYpe = 2,則該屬性將從Person類的LastName和FirstName屬性派生。

有沒有簡單的方法來實現這種事情?

感謝

回答

3

這可以用一點神奇abstract來完成。

Member有這樣的:

public abstract string MemberName { get; } 

然後在Person你作爲覆蓋:

public override string MemberName 
{ 
    get{ return FirstName + " " + LastName; } 
} 

Business您覆蓋列示:

public override string MemberName 
{ 
    get{ return BusinessName; } 
} 

現在,任何的instanceof任何類在調用時繼承MemberMemberName屬性將返回正確的表示。這是所有基本的繼承/ OOP /無論你怎麼稱呼它多態性。

+0

+1 - 這樣下去會員關閉,以改變並保持在專業化的邏輯。它比我的建議更清潔。 – Fenton

+0

@Jamiec甜:)謝謝 – roggss