プロパティのセッターとゲッターはメソッド (get_X と set_X) として実装されます。
Projection = value
プロジェクションのセッター内に書き込むと、 set_Projection()
from withinへの再帰呼び出しが発生しますset_Projection()
。( も同様get_Projection()
です。)
呼び出しを取り巻く条件がないため、再帰は無限です。
に関してはpublic T PropA { get; set; }
、次のシュガー構文です。
private T _PropA;
public T PropA
{
get
{
return _PropA;
}
set
{
_PropA = value;
}
}
あなたがすべきことは次のとおりです。
private Matrix _projection;
public Matrix Projection
{
get
{
return _projection;
}
protected set
{
// Make sure that Matrix is a structure and not a class
// override == and != operators in Matrix (and Equals and GetHashCode)
// If Matrix has to be a class, use !_project.Equals(value) instead
// Consider using an inaccurate compare here instead of == or Equals
// so that calculation inaccuracies won't require recalculation
if (_projection != value)
{
_projection = value;
generateFrustum();
}
}
}