可能重复:
When to pass ref keyword in当在一个方法中通过ref传递并且在C#中没有引用时有什么区别?
大家好,
我只是惊讶,为什么我们在C#中有ref
,而默认的一切是在C#中的引用类型作为参考传递。
在简单的话,任何人都可以给我解释一下这两种方法之间的区别来电:
public void Test(SomeClass someClass)
{
// some code here
}
和
public void Test(ref SomeClass someClass)
{
// some code here
}
在我的思想它们都具有参考相同的内存位置。
那么,为什么我们需要关键字ref
呢?
在调用test2之后,obj确实是null – Chandu 2010-12-21 21:00:23
@Cybernate:不,它不会。编译并为自己测试。 `Test2`中的`obj = null`行只会将参数变量设置为null;它不会影响`Foo`中的`obj`本地。 – cdhowie 2010-12-21 21:01:19
我的不好...你是对的。今天学到了一件新事物:)。将我的投票添加到答案... – Chandu 2010-12-21 21:05:29