c# - 属性 - 按值还是引用?

标签 c# .net properties pass-by-reference pass-by-value

我有以下公开Arraylist 的公共(public)属性:

public ArrayList SpillageRiskDescriptions
        {
            get
            {
                return _SpillageRiskDescriptions;
            }
            set
            {
                _SpillageRiskDescriptions = value;
            }
        }

我在别处打电话

SpillageRiskDescriptions.Add("VENTILATE AREA");
SpillageRiskDescriptions.Add("DO NOT ALLOW SPILLAGE TO ENTER MAINS");

这些似乎是将元素添加到私有(private) ArrayList _SpillageRiskDescriptions(通过属性),而我预计这会导致问题。因此,我认为属性返回对原始变量的引用而不是通过传递它是否正确?这是因为 ArrayList 是引用类型吗? int 是否也会发生同样的情况(例如?)

最佳答案

从技术上讲,它始终按值传递,但您必须了解所传递的内容。由于它是引用类型,因此您正在传回一个引用(但按值)。

希望这是有道理的。您总是按值传回结果,但如果类型是引用,您将按值传回引用,这意味着您可以更改对象,但不能更改它引用的对象。

关于c# - 属性 - 按值还是引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274752/

相关文章:

C# float max 解析错误

'all methods' 的 C# 委托(delegate)或 Func?

c# - RESTful WCF 服务返回 "The resource cannot be found."错误

python - 解析和使用 .properties 文件中使用 PYTHON 定义的属性

c# - DirectShow:如何更改过滤器属性?

c# - 更改文本框焦点时停止触发验证事件

c# - 使用 JavaScript 和 C# 的计时器

c# - Matlab调用C#或C并控制NI DAQ

C# WPF 在 XAML 中添加 KeyBinding 事件

vbscript - VBScript 默认属性有问题