我想我的默認構造函數創建&初始化我的代碼片段中顯示的所有對象。然後,我希望我的參數化構造函數調用默認構造函數,從而創建並初始化這些對象,然後可以在參數化構造函數中使用它,而不會收到NullReferenceException。從參數化構造函數調用默認構造函數
在這種情況下,我不確定使用構造函數的最佳方式(效率最高,代碼少等)是多少。我寧願使用構造函數鏈。
同樣,我對構造函數有一個非常基本的理解,所以如果這是不可能的,那麼請告訴我,告訴我你在這種情況下會做什麼。
class Rectangle
{
public Line left { get; set; }
public Line top { get; set; }
public Line right { get; set; }
public Line bottom { get; set; }
public Rectangle() : this(new Line()) { }
public Rectangle(Line diagnonal)
{
left = new Line();
top = new Line();
right = new Line();
bottom = new Line();
Point beginningDiagonalPoint = new Point();
Point endingDiagonalPoint = new Point();
beginningDiagonalPoint = diagnonal.startPoint;
endingDiagonalPoint = diagnonal.endPoint;
int begXC = beginningDiagonalPoint.xCoord;
int begYC = beginningDiagonalPoint.yCoord;
int endXC = endingDiagonalPoint.xCoord;
int endYC = endingDiagonalPoint.yCoord;
Point rightSideEnd = new Point();
rightSideEnd.xCoord = endXC;
rightSideEnd.yCoord = begYC;
Point leftSideEnd = new Point();
leftSideEnd.xCoord = begXC;
leftSideEnd.yCoord = endYC;
// ----------- right side definitions -------------
right.startPoint = endingDiagonalPoint;
right.endPoint = rightSideEnd;
// ------------ left side definitions --------------
left.startPoint = beginningDiagonalPoint;
left.endPoint = leftSideEnd;
// ------------ top side definitions -------------
top.startPoint = leftSideEnd;
top.endPoint = endingDiagonalPoint;
// ------------ bottom side definitions -----------
bottom.startPoint = rightSideEnd;
bottom.endPoint = beginningDiagonalPoint;
}
}
那簡直太棒了 – Mitz 2016-12-15 13:40:45
不幸的是,它似乎在自定義構造函數執行任何代碼之前調用基構造函數 – Lara 2017-02-11 07:56:35