私は多くのコードを持っています。を初期化中に実行する必要があります。ブールでヒューズを行う
それはイベントで
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を返し、switcを作りますhをtrueに設定し、連続する呼び出しはtrueを返します。
public static bool Burnt(ref bool value)
{
if (!value)
{
value = true;
return false;
}
else
return true;
}
もちろん、動作しますが、私は中程度に満足しています。より洗練されたソリューションがあると確信しています。あなたのことは何ですか?
Size? _containerSize;
Size ContainerSize {
get {
return (_containerSize ?? (_containerSize = _InitialContainerSize)).Value;
}
}
あなたは、このようにそれを使用することができます:
void PerformLayout() {
var size = ContainerSize;
// ...
}
タイプあなたは怠惰な初期化したい場合は
'戻り値|| !(値=真); '(ちょうど冗談!) –
面白い。今のところ、3つのアップフォースと3つの投票が終了しています。 –
本当の質問ではありません。 codereviewサイトにある必要があります。ここにはない。 – leppie