【发布时间】:2017-08-15 10:35:07
【问题描述】:
private ArrayList arr = new ArrayList();
private ArrayList Test()
{
return arr;
}
private void WhyMustVariable()
{
Test() = new ArrayList(); // error: left-hand side of an assignment must be a variable property or indexer
}
为什么我不能这样做 Test() = ...; 谢谢。
【问题讨论】:
-
您的意思是如何将变量传递给方法?你希望你的尝试做什么?
-
Test() 是一个方法,只能给属性和字段赋值; arr = new ArrayList(),或 arr = GetData()。
-
因为您尝试做的事情毫无意义。你可以给一个变量赋值,但是你不能给一个方法赋值。您期望该代码做什么?
-
您认为之后您将如何访问新的
ArrayList?在Test()返回时,它的返回值和arr字段具有no 关系,尽管事实上其中一个复制了另一个。 -
@TangWentian:这是对方法的调用。我真的无法想象为什么你会认为它是一个变量。如果那行代码确实编译了,你希望它做什么?您可以与方法的结果进行交互,您可以将方法的结果(或任何其他值)分配给变量,但您不能 分配 给 不是的东西 一个变量。