Что означает using в этом коде?

363
01 августа 2017, 14:48
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        User user = null;
        using (UserContext db = new UserContext())
        {
            user = db.Users.FirstOrDefault(u => u.Email == model.Name);
        }
        if(user == null)
        {
            using (UserContext db  = new UserContext())
            {
                db.Users.Add(new User {Email = model.Name, Password = model.Password, Age = model.Age });
                db.SaveChanges();
                user = db.Users.Where(u => u.Email == model.Name && u.Password == model.Password).FirstOrDefault();
            }
            // ecli polzovatel' udachno dabavlen  v bd 
            if (user != null)
            {
                FormsAuthentication.SetAuthCookie(model.Name, true);
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", "Pol'zovatel' s takim loginom uzhe sushestvuet");
        }
    }
    return View(model);
}
Answer 1
using (var foo = new Bar()) // Где Bar - класс, который реализует IDisposable 
{
     ...
}

это тоже самое, что

Bar foo = new Bar();
try 
{ 
    ...
}
finally { foo.Dispose(); }

Т.е. при выходе из блока using (даже при исключении или return) у объекта foo будет вызван метод Dispose().

READ ALSO
Скачать картинку C#

Скачать картинку C#

Здравствуйте, есть ссылка где находиться картинка, но скачать ее не получаеться

418
Озвучивание слов Microsoft Speech Platform

Озвучивание слов Microsoft Speech Platform

Здравствуйте, недавно открыл для себя нейронные сети, и стало интересно написать что-то, что напоминало бы ИИ (муляж)

358
Правильное ли использование async/await

Правильное ли использование async/await

Всем доброго времени суток

322
C# кастомный ValidationAttribute не работает ASP.Net MVC

C# кастомный ValidationAttribute не работает ASP.Net MVC

Здравствуйте! Сделал свой атрибут валидации, который наследуется от ValidationAttribute, переопределил метод IsValid(object value, ValidationContext validationContext) и прописал...

361