初期化中に一度実行しなければならないコードがたくさんあります。
イベントにあるため、この方法でブールフラグを使用する必要があります
bool _fuse;
void PerformLayout()
{
Size size;
if (!_fuse)
{
size = _InitialContainerSize;
_fuse = true;
}
else
size = parent.Size;
// ...
}
頻繁に発生するため、このブール変数をヒューズのように見せるために何かをしました。
だから私はこれをしました:
bool _fuse;
void PerformLayout()
{
Size size;
if (!Burnt(ref _fuse))
size = _InitialContainerSize;
else
size = parent.Size;
// ...
}
falseに初期化されている場合、クエリの結果は一度falseを返し、trueに切り替え、後続の呼び出しはtrueを返します。
public static bool Burnt(ref bool value)
{
if (!value)
{
value = true;
return false;
}
else
return true;
}
もちろん、それは機能しますが、私は適度に満足しているだけであり、よりエレガントな解決策があると確信しています。あなたは何になりますか?