Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
while (count --> 0)
while (count --> 0)
private void BeginLoading()
{
IsLoading = true;
}
private void EndLoading()
{
IsLoading = false;
}
protected IDisposable Loading()
{
return new LoadingHelper(this);
}
private class LoadingHelper : IDisposable
{
private readonly BaseViewModel _viewModel;
private readonly bool _wasLoading;
public LoadingHelper(BaseViewModel viewModel)
{
_viewModel = viewModel;
_wasLoading = _viewModel.IsLoading;
if (!_wasLoading)
{
_viewModel.BeginLoading();
}
}
public void Dispose()
{
if (!_wasLoading)
{
_viewModel.EndLoading();
}
}
}
static bool a() { return true; }
static bool b() { return false; }
static void Main(string[] args)
{
bool c = a() && b();
bool d = a() & b();
}
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 2
.locals init (
[0] bool c,
[1] bool d)
L_0000: nop
L_0001: call bool ConsoleSandbox.Program::a()
L_0006: brfalse.s L_000f
L_0008: call bool ConsoleSandbox.Program::b()
L_000d: br.s L_0010
L_000f: ldc.i4.0
L_0010: stloc.0
L_0011: call bool ConsoleSandbox.Program::a()
L_0016: call bool ConsoleSandbox.Program::b()
L_001b: and
L_001c: stloc.1
L_001d: ret
}
If evaluation of the Expression completes normally, producing a null value, then an instance V' of class NullPointerException is created and thrown instead of null.
this.PropertyName(...). Я специально вырезал все излишества чтобы показать только саму суть — а именно то, что передавая выражение, можно выдирать из него текстовую сущность. Я сам не фанат WinForms data binding, если честно.
Трюки языка C#