有条件MyLib1.dll的其中有以下方法:
public static int Sum(int a, int b)
{
return a + b;
}
我的图书馆也有一些用户调用此方法。我可以跟踪我的方法将返回的值的分配吗?
也就是说,有条件地它看起来像这样(在用户代码中):
int result = MyLib.LibClass.Sum(5, 5);
执行此方法后,内存分配(可能不是,但不是本质)下result,MyLib1.dll我想知道是否有值分配。如何做到这一点,有可能吗?
您可以使用转换运算符。用户定义的转换运算符。
赋值运算符重载。我们可以将代码插入到它们中,以响应它们的调用。
我将两个运算符都设为隐式,不推荐这样做。但就我们的目的而言,它会做。
我们试着:
将发出
也就是说,你可以找出是否有作业!
如果你写
结果将是
没有任务!
但是,如果你写
或者,这是等价的
结果
也就是说,在这种情况下,我们将不知道分配。
好的,我会写的。
比方说,在这个话题中,我们正在讨论各种奇怪的事情!
我们使用Ref return 和 ref locals。
在方法中,将关键字添加
ref到签名和返回位置:现在,如果调用还使用
ref,则该变量将引用为字段分配的内存c。这将输出:
可以看出,
x在第二次调用时该值发生了变化。如果你不使用
ref:将输出:
在此选项中,值
a保持不变。我不知道为什么这一切。嗯,突然!