Лучший обходной путь - использовать этот фрагмент кода в HomeView:
protected override void OnCreate(Bundle bundle)
{
var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(this);
setupSingleton.EnsureInitialized();
base.OnCreate(bundle);
// my code here
}
Спасибо @kmiterror за подсказку.
, поскольку это является ненужным. Существует очень немного ситуаций, где dev был бы нужен он.
А, Когда у Вас есть очень простой цикл, говорят 1-или с 2 лайнерами, затем можно просто изменить к лучшему условие цикла, и это - все еще много читаемое.
B), Когда Вы пишете простой процессуальный код (иначе. как мы написали код в прошлом веке), необходимо также применять структурное программирование (иначе. как мы написали лучший код в прошлом веке)
C), Если Вы пишете объектно-ориентированный код, Ваше тело цикла должно состоять из не больше, чем одного или двух вызовов метода, если этого нельзя выразить в одном - или с двумя лайнерами (в этом случае, см. A)
D) при написании функционального кода просто возвратите простой последний вызов следующего повторения.
единственный случай, когда Вы хотели бы использовать continue
ключевое слово, - то, если Вы хотите кодировать Lua как, он - Python, который это просто не.
, Если A) не применяется, в этом случае нет никакой потребности ни в каких обходных решениях, необходимо делать Структурированное, Объектно-ориентированное или Функциональное программирование. Это - парадигмы, для которых был создан Lua, таким образом, Вы будете бороться против языка, если Вы будете стараться изо всех сил избегать их шаблонов.
Я никогда раньше не использовал Lua, но я погуглил и пришел вот к чему:
Проверьте вопрос 1.26.
Это распространенная жалоба. Авторы Lua посчитали, что continue был лишь одним из нескольких возможных новых механизмов потока управления (тот факт, что он не может работать с правилами области видимости repeat/until, был второстепенным фактором)
В Lua 5.2 есть оператор goto, который можно легко использовать для выполнения той же работы.
Способ, которым язык управляет лексической областью, создает проблемы с включением как goto
, так и continue
. Например,
local a=0
repeat
if f() then
a=1 --change outer a
end
local a=f() -- inner a
until a==0 -- test inner a
Объявление local a
внутри тела цикла маскирует внешнюю переменную с именем a
, и область действия этой локальной переменной распространяется на условие до тех пор, пока
, поэтому условие проверяет самый внутренний a
.
Если бы continue
существовал, его нужно было бы ограничить семантически, чтобы он был действительным только после того, как все переменные, используемые в условии, попали в область видимости.Это условие сложно задокументировать для пользователя и реализовать в компиляторе. Обсуждались различные предложения по этому поводу, включая простой ответ запрета continue
с помощью стиля цикла повтор ... до
. До сих пор ни у одного из них не было достаточно убедительного варианта использования, чтобы включить их в язык.
Как правило, обходной путь заключается в том, чтобы изменить условие, которое может вызвать выполнение continue
, и собрать остальную часть тела цикла при этом условии. Итак, следующий цикл
-- not valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
if isstring(k) then continue end
-- do something to t[k] when k is not a string
end
можно было бы написать
-- valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
if not isstring(k) then
-- do something to t[k] when k is not a string
end
end
. Он достаточно ясен и обычно не является обузой, если у вас нет серии тщательно продуманных отбраковок, которые управляют работой цикла.