Ответ 1
У вас есть оператор (, если или в то время как, например), прямо перед отправленным вами кодом, без фигурных скобок.
Например:
if (somethingIsTrue)
{
var user= new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
}
верен, но код ниже:
if (somethingIsTrue)
var user = new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
приведет к CS1023: оператор Embedded не может быть объявлением или помеченной инструкцией.
UPDATE
Причиной, по словам @codefrenzy, является то, что вновь объявленная переменная сразу выйдет за пределы области видимости, если только она не заключена в оператор блока, откуда к ней можно получить доступ.
Компиляция будет проходить в следующих случаях.
Если вы только инициализируете новый экземпляр типа, не объявляя новую переменную:
if (somethingIsTrue)
new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
или если вы присвоите значение существующей переменной:
ApplicationUser user;
if (somethingIsTrue)
user = new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};