在另一个类或类库中获取aspx页面引用

时间:2012-01-08 16:48:26

标签: c# asp.net .net performance

例如,我在Link.cs类中使用此方法来轻松映射Global.asax路由:

public static string ToCategory(string categoryName, ushort pageNumber, Page page)
{
    if (pageNumber == 1)
        return page.GetRouteUrl("category", new { CategoryName = categoryName });
    else
        return page.GetRouteUrl("category-page", new { CategoryName = categoryName, Page = pageNumber });
}

GetRouteUrl()方法是Page类的一部分,但我将对象作为值传递,因此理论上它复制整个事物并使用更多内存而不仅仅传递引用...或者我错了?这样做是否有任何性能开销?感谢。

1 个答案:

答案 0 :(得分:0)

作为方法参数传递的对象(也称为引用类型参数)总是作为对原始对象的引用传递,不会使用额外的内存。

请注意,这与将对象作为ref传递的概念不同,{{1}}本质上是指向对象内存位置的指针,可以通过该方法进行修改(例如,创建新类并分配它)参数)。

另一方面,默认情况下,原始数据类型(例如int)按值传递,因此会占用额外的内存。

This MSDN documentation包含更详细的讨论和示例。