2012-01-08 28 views
0

例如aspx頁參考,我這個方法在Link.cs類爲Global.asax路線容易URL映射:獲取另一類或類庫

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類的一部分,但我把這個對象當作價值傳遞,所以理論上它複製整個事物並使用更多的內存,而不僅僅是傳遞參考......或者我錯了?這樣做有沒有任何性能開銷?謝謝。

回答

0

作爲方法參數傳遞的對象(aka引用類型參數)始終作爲對原始對象的引用傳遞,並且不會使用額外的內存。

請注意,這是一個不同於將對象作爲ref傳遞給對象的概念,它實質上是一個指向對象內存位置的指針,可以通過該方法修改它(例如,創建一個新類並將其指定給參數)。

另一方面,默認情況下,原始數據類型(例如整數)按值傳遞,因此會消耗額外的內存。

This MSDN documentation包含更詳細的討論和示例。