[英]c# pass by value
我只是想舉個例子:
public void main()
{
int x = 1;
Foo(x);
}
public void Foo(int y)
{
y = 5;
}
我們知道 C# 參數是按值傳遞的值類型。 這是否意味着在上面的示例中,我在堆棧上有 2 個副本,一個用於 x,一個用於 y?
您理解正確 - x
的值將放在main
函數的堆棧框架中的堆棧上,而y
的值將放在Foo
堆棧框架中的堆棧上。
有關更多詳細信息,您還需要了解值參數是如何傳遞的。 Foo 中的 y 不影響 Main 中的 x 的原因是它們位於不同的堆棧幀中。 有關傳遞值類型參數的更多詳細信息,請參見此處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.