C#扩展方法奇怪的行为

时间:2017-04-03 16:57:28

标签: c# extension-methods

我的扩展方法非常奇怪,这是我的示例代码:

"create_source_map": '%outname%.map'

在扩展方法之后,我发现使用myObject更改了anObject的属性。我不太明白为什么。扩展方法不应仅适用于myobject吗?

谢谢。

以下是我如何做我的extionsion方法

AType anObject = new AType();
AType myObject = new AType();
myObject=anObject;
myObject.ExtensionMethods();

谢谢。

1 个答案:

答案 0 :(得分:2)

这与扩展方法无关,而且与您在此处所做的事情有关:

myObject=anObject;

在该行之后,两个变量都指向内存中的相同的对象实例。因此,对一个变量所做的任何更改都将反映在另一个变量中,因为只有一个对象。 (曾经有过第二个对象,但是一旦你不再引用它,垃圾收集器就会很快从内存中清除它。即使它没有,你仍然没有参考无论如何它都能使用它。)