我想我的默认构造函数创建&初始化我的代码片段中显示的所有对象。然后,我希望我的参数化构造函数调用默认构造函数,从而创建并初始化这些对象,然后可以在参数化构造函数中使用它,而不会收到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