为什么我不能在扩展方法中将对象设置为null

Nic*_* N. 0 c# extension-methods

给出以下扩展方法:

public void DisposeIfNotNull(this IDisposable disposableObject)
{
    if (disposableObject != null) {
        disposableObject.Dispose();
        disposableObject = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么以下行没有任何影响:disposableObject = null;

noe*_*cus 6

因为您只将本地引用设置为null - 而不是您传入的引用.

如果它不是扩展名,您可以使用ref关键字,但这与扩展参数不兼容.