Lar*_*rry 5 c# boolean code-design
我有很多代码片段必须在初始化期间运行一次.
我必须以这种方式使用布尔标志,因为它在一个事件中
bool _fuse;
void PerformLayout()
{
Size size;
if (!_fuse)
{
size = _InitialContainerSize;
_fuse = true;
}
else
size = parent.Size;
// ...
}
Run Code Online (Sandbox Code Playgroud)
因为它经常发生,我做了一些事情来使这个布尔变量看起来像一个保险丝:
所以我这样做了:
bool _fuse;
void PerformLayout()
{
Size size;
if (!Burnt(ref _fuse))
size = _InitialContainerSize;
else
size = parent.Size;
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果它初始化为false,则查询结果返回false一次,将切换为true,并且后续调用返回true.
public static bool Burnt(ref bool value)
{
if (!value)
{
value = true;
return false;
}
else
return true;
}
Run Code Online (Sandbox Code Playgroud)
当然,它有效,但我只是中等满意,我相信有更优雅的解决方案.你的是什么?
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |