2013-02-07 160 views
0
數據模型

只是好奇的一些理論傳遞實體/通過參考

我有一個C編程背景,如果你是通過跨職能結構你一個指針最有可能傳遞到結構

想知道在C#中,如果我傳遞一個數據對象,比如一個實體模型,那麼通過引用傳遞它有什麼好處?幕後是傳遞一個指針,還是有更多的指針?

在現實中我的模型是相當小的,所以如果有任何速度或性能提升,我懷疑,這將是明顯的,但我想這將是很好的瞭解

+0

默認情況下,對象通過引用傳遞。一個方法可以改變對象的狀態,但是當方法返回時它仍然是同一個對象。使用'ref',方法返回後,變量可能會引用完全不同的對象。我從來不需要使用'ref',並且我只見過它使用不正確。 – JosephHirn

回答

0

在幕後是它傳遞指針還是有更多的呢?

基本上,是的。所有的引用類型(基本上除本地類型和結構之外的所有內容)均通過引用傳遞。如果您將模型傳遞給更改模型值的函數,那麼調用函數將會看到這些更改。

如果我傳遞一個數據對象,比如一個實體模型,是否有通過引用傳遞它的好處?

可能不是。在這種情況下,您將通過引用傳遞引用(類似於指向指針的指針)。我從未見過一種情況,即將模型引用傳遞給函數,並期望該函數更新引用。你可以看到使用返回類型並偶爾使用out參數。