У меня есть приложение MVC Core Dotnet, и в основном я хотел загрузить представление данных сеанса, но также удалить сеанс после загрузки страницы.Мой код работает, но я не понимаю, почему
public IActionResult Charge(string stripeEmail, string stripeToken, int totalPrice){
//some stripe code that went here...
var cart = HttpContext.Session.GetCart();
ClearSession();
return View(cart);
}
protected void ClearSession(){
//creates a new instance if cart doesnt exist otherwise returns it
var cart = HttpContext.Session.GetCart();
//clears the items from the collection using .Clear() ...
cart.RemoveAll();
HttpContext.Session.SetCart(cart);
}
код работает, когда он помещается в новый метод, например, но если я поместил его в тот же метод, он не работает.Я удивлен, поместив его в новый метод, который сработал, поскольку это противоречит моему пониманию того, как передача по значению работает с типами объектов ... (местоположение объекта будет передано).Он действовал как копия объекта, когда я очистил список элементов в новом методе.
Почему этот код работает?