Tôi có nhiều đoạn mã cần chạy một lần trong khi khởi tạo.Làm cầu chì với boolean
tôi phải sử dụng một lá cờ boolean cách này bởi vì nó là trong một sự kiện
bool _fuse;
void PerformLayout()
{
Size size;
if (!_fuse)
{
size = _InitialContainerSize;
_fuse = true;
}
else
size = parent.Size;
// ...
}
Bởi vì nó thường xảy ra, tôi đã làm một cái gì đó để làm cho biến boolean này trông giống như một cầu chì :
Vì vậy, tôi đã làm điều này:
bool _fuse;
void PerformLayout()
{
Size size;
if (!Burnt(ref _fuse))
size = _InitialContainerSize;
else
size = parent.Size;
// ...
}
Nếu nó được khởi tạo sai, kết quả của truy vấn trả về false một lần, làm cho switc h thành true và các cuộc gọi liên tiếp trả về true.
public static bool Burnt(ref bool value)
{
if (!value)
{
value = true;
return false;
}
else
return true;
}
Tất nhiên, nó hoạt động, nhưng tôi chỉ hài lòng vừa phải và tôi chắc chắn có nhiều giải pháp thanh lịch hơn. Điều gì sẽ là của bạn?
'giá trị trả lại || ! (giá trị = true); '(chỉ đùa thôi!) –
Thú vị. Cho đến nay tổng kiểm đếm là ba upvotes và ba phiếu để đóng. –
Không phải là một câu hỏi thực sự. Nên ở trên trang web của người xem mã. Không phải ở đây. – leppie