就像是:
- 如果必须返回方法调用后的变量值:
- if 可以在方法调用之前实例化使用 ref
if 不需要在调用前实例化
如果变量的值用于返回、决定或计算方法调用中的其他值,则不要使用 ref 和 out
我得到正确了吗?你的简短指导方针是什么?
就像是:
if 不需要在调用前实例化
如果变量的值用于返回、决定或计算方法调用中的其他值,则不要使用 ref 和 out
我得到正确了吗?你的简短指导方针是什么?
对于值类型:
如果您需要在原始商店中更改它,请使用 ref. 例子 :
int a = -3;
protected void EnsurePositiveValues(ref int value)
{
if (value < 0)
value = 0;
}
对于参考类型:
如果您需要(重新)分配原始参考,请使用 ref。例子 :
User u = MembershipAPI.GetUser(312354);
protected void EnsureUser(ref User user)
{
if (user == null)
user = new User();
}
您还需要考虑值和引用类型。将引用类型作为参数传递给方法时,将指针传递给变量。这意味着您可以在方法内部对变量进行更改,并且它们将可用于调用该方法的代码,但是如果您将其设置为 null,您只是将指针设置为 null,并且当您使用方法返回。
不确定这是否真的回答了您的问题,但我发现通过 ref 传递值(使用 out 关键字)的一种很好的用法是......
int i = 0;
if (int.TryParse("StringRepresentation", out i)
{
// do something with i which has taken the value of a the previous successful TryParse
}