デフォルトのコンストラクターで、コード スニペットに示されているすべてのオブジェクトを作成および初期化したいと考えています。次に、パラメーター化されたコンストラクターがデフォルトのコンストラクターを呼び出して、これらのオブジェクトを作成および初期化し、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;
}
}