关于使用新{}的问题

Mic*_*elS 3 c# asp.net asp.net-mvc-2

我目前正在通过Apress ASP.NET MVC2书籍,我对以下代码中的新{returnUrl}的用户感到有点困惑:

public RedirectToRouteResult RemoveFromCart(Cart cart, int productID, string returnUrl)
{
    Product product = productsRepository.Products.FirstOrDefault(p => p.ProductID == productID);
    cart.RemoveLine(product);
    return RedirectToAction("Index", new { returnUrl });
}
Run Code Online (Sandbox Code Playgroud)

是否与创建新字符串有关,而不是简单地传递对传入的参数的引用?

Jon*_*eet 12

它创建一个匿名类型与属性returnUrl也具有价值returnUrl.所以它是这样的:

var anon = new { returnUrl = returnUrl };
return RedirectToAction("Index", anon);
Run Code Online (Sandbox Code Playgroud)

使用表达式中的名称来确定匿名类型中属性的名称称为投影初始值设定项.

这有助于向您解释吗?如果没有,您可能想要修改匿名类型.它们是在C#3中引入的,主要用于LINQ.