Files
BH3/Assets/Plugins/Assembly-CSharp-firstpass/UniRx/Disposable.cs
2025-08-13 09:26:42 +08:00

49 lines
778 B
C#

using System;
namespace UniRx
{
public static class Disposable
{
private class EmptyDisposable : IDisposable
{
public static EmptyDisposable Singleton = new EmptyDisposable();
private EmptyDisposable()
{
}
public void Dispose()
{
}
}
private class AnonymousDisposable : IDisposable
{
private bool isDisposed;
private readonly Action dispose;
public AnonymousDisposable(Action dispose)
{
this.dispose = dispose;
}
public void Dispose()
{
if (!isDisposed)
{
isDisposed = true;
dispose();
}
}
}
public static readonly IDisposable Empty = EmptyDisposable.Singleton;
public static IDisposable Create(Action disposeAction)
{
return new AnonymousDisposable(disposeAction);
}
}
}