我正在尝试创建一个处理实现IDisposable的对象的通用方法,称为DisposeObject()
为了确保我处理原始引用指向的对象,我试图通过引用传递一个对象.
但是我收到了一个编译错误
'ref'参数类型与参数类型不匹配
在下面的(简化的)码,这两个_Baz和_Bar实施IDisposable的.

所以问题是,
[更新]
从目前为止提供的答案,只要我没有将IDisposable参数设置为null,我可以简单地通过值传递一个对象而不使用ref.我现在还有另一个麻烦,无论是否null在DisposeObject方法中设置一次性对象.
以下是完整性的完整来源:
public class Foo : IDisposable
{
private Bar _Bar;
private Baz _Baz;
private bool _IsDisposed;
~Foo() { Dispose(false); }
public void Dispose(bool disposing)
{
if (!_IsDisposed)
{
if (disposing)
{
DisposeObject(ref _Baz);
DisposeObject(ref _Bar);
}
}
_IsDisposed = true;
}
private void DisposeObject(ref IDisposable obj)
{
try
{
if (obj == null)
return;
obj.Dispose(); …Run Code Online (Sandbox Code Playgroud)