【发布时间】:2013-06-27 12:31:42
【问题描述】:
我只是想检查一下我对 C# 处理事物方式的理解,然后再深入研究我的类的设计。我目前的理解是:
-
Struct是一个 value 类型,这意味着它实际上包含其中定义的数据成员。 Class是一个 reference 类型,这意味着它包含对其中定义的数据成员的引用。方法签名通过值传递参数,这意味着将值的副本传递到方法内部,这对于大型数组和数据结构来说成本很高。
- 使用 ref 或 out 关键字定义参数的方法签名将改为通过 reference 传递参数,这意味着指向而是提供对象。
我不明白当我调用一个方法时会发生什么,实际发生了什么。 new() 是否被调用?它只是自动复制数据吗?还是它实际上只是指向原始对象?以及使用 ref 和 out 对此有何影响?
【问题讨论】:
-
您是在问值类型或引用类型会发生什么?
-
两者,我想。但 Avi 下面的回答似乎涵盖了这两种情况。
标签: c# parameter-passing pass-by-reference pass-by-value