2015-07-28 17 views
0

Student類以下幾個屬性。如何實例化類對象中更好地

Student.cs

public class Student{ 
    Guid Id {get;set;} 
    public string RollNumber{get;set;} 
    public string StudentType{get;set;} 
    public string Class{get;set;} 
} 

我實例化Student類的一個對象在我的代碼如下。

public void Update(Student student) 
{ 
    Student orignal = new Student { 
     Id = student.Id, 
     RollNumber = student.RollNumber, 
     StudentType = student.StudentType, 
     Class = student.Class 
    }; 
} 

以上工作正常,但我覺得必須有一個更好的辦法,因爲如果我有100 properties in Student class不是把他們都在Student student = new Student {.,.,.,.,.,.,.,.,.,.,............. upto 100}是壞的方式做到這一點。

我可以做的更好的辦法嗎?

+0

你真的在問怎麼*複製*? – jonrsharpe

+0

爲什麼不直接複製像Student = student這樣的對象; –

+0

@ jonrsharpe,不,我要求很好的方式來實例化,如果有的話。 – immirza

回答

1

好,具有100個屬性的類是糟糕的設計反正...您可以添加一個構造函數,至少節省您的每一個實例編寫每個屬性名稱的努力。

2

解決辦法有兩個:

  1. 不要把100點的屬性在類:)這通常意味着糟糕的設計和其他類試圖掙脫。

  2. 如果你有一個相當大的數字,總是必須的屬性,嘗試建造者模式來代替。這可以讓你保存一些通用的半預備對象以備後用。

另外,也許你有很多的默認值,你不必指定每一次你構建一個新的對象?

+0

我可以在我的課程中使用構造函數嗎? – immirza

1

請閱讀有關生成器模式。這是初始化類的一個非常好的工具,特別是在構建時不是所有的字段都必須定義的情況下。有一些實現,但我認爲this one將是您的案例最有利的。