我有以下公开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/