[英]Return value of method is modifying an object passed as a method parameter
我正在编写一种方法,其中返回值直接修改用于向该方法提供参数的类的情况。
Computer.MatchingPassword = PasswordFinder.Find(Computer.Name, PasswordList)
分配给这样传递的参数的属性是否有任何危害?
从技术上讲,由于传递了Computer
对象的属性,因此代码示例未分配给参数。
换句话说,您只给了函数“名称”,因此分配给同一对象的不同属性将无效。
现在,在更一般的情况下,您仍然很安全。 即使传递整个对象,在您分配返回值时, 该方法也已经完成 。 您所做的任何更改都不会做任何事情。
换句话说,以下代码在功能上是等效的:
string password = PasswordFinder.Find(Computer.Name, PasswordList);
Computer.MatchingPassword = password;
显然那里没有问题。 即使它是由ref
传递的,也是如此,同样,该方法完全由对象完成,因此对它的任何更改都将无关紧要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.