У меня есть код Razor, который имеет условную логику, основанную на том, установлена ли определенная переменная массива. У меня чертовски много времени, чтобы выяснить, как лучше всего справиться, когда он нулевой, и я не доволен своим грязным решением.
Вот простой пример того, что происходит:
@{
if (ViewBag.Foo != null)
{
double[] bar = new double[ViewBag.Foo.Length];
}
}
Позже в коде у меня будет что-то вроде этого:
@if (ViewBag.Foo != null)
{
...some code that uses `bar` goes here ...
}
С этим кодом я получаю ошибки, когда ViewBag.Foo
фактически равен нулю. Я получаю исключение с жалобой на второй раздел кода, который использует bar
, и он не находится в области видимости. Однако при выполнении этот второй раздел всегда будет пропущен.
Поработав некоторое время, я просто сделал это вместо:
double[] bar;
@{
if (ViewBag.Foo != null)
{
bar = new double[ViewBag.Foo.Length];
}
}
else
{
bar = new double[1];
}
С этим изменением код работает, когда ViewBag.Foo имеет значение NULL и не NULL. Должен быть лучший способ справиться с этим ... кто-нибудь?