- 🧩 Replaced
net8.0
target withnet9.0
. Now targets:net9.0
,netcoreapp3.0
,netcoreapp2.1
,netcoreapp1.0
,netstandard2.1
,netstandard1.0
,net45
,net35
; - ✨ Added
allows ref struct
anti-constraints where needed;
- 🧩 Removed unnecessary
netstandard2.0
target. Now targets:net8.0
,netcoreapp3.0
,netcoreapp2.1
,netcoreapp1.0
,netstandard2.1
,netstandard1.0
,net45
,net35
;
- ✨ Added
static class HashCodeExtensions
; - ✨ Added
HashCodeExtensions.AddRange<T>(this HashCode, ReadOnlySpan<T>)
; - ✨ Added
HashCodeExtensions.AddRange<T>(this HashCode, ReadOnlySpan<T>, IEqualityComparer<T>?)
; - ✨ Added
HashCodeExtensions.AddRange<T>(this HashCode, IEnumerable<T>)
; - ✨ Added
HashCodeExtensions.AddRange<T>(this HashCode, IEnumerable<T>, IEqualityComparer<T>?)
; - 🧩 Added
netcoreapp2.1
andnetstandard2.0
targets. Now targets:net8.0
,netcoreapp3.0
,netcoreapp2.1
,netcoreapp1.0
,netstandard2.1
,netstandard2.0
,netstandard1.0
,net45
,net35
; - ⚡️ Microoptimized IL code size of
DelegateDisposable
's constructor;
- ✨ Added
static class WeakReferenceExtensions
; - ✨ Added
WeakReferenceExtensions.TryGetTarget(this WeakReference, out object?)
; - ✨ Added
WeakReferenceExtensions.GetTargetOrDefault(this WeakReference)
; - ✨ Added
WeakReferenceExtensions.GetTargetOrDefault<T>(this WeakReference<T>)
;
- ♻️ Refactored shimmed attributes;
- 🧩 Added
net35
target. Now targets:net8.0
,netcoreapp3.0
,netcoreapp1.0
,netstandard2.1
,netstandard1.0
,net45
,net35
;
- 📄 Updated license information;
- ✨ Added
static Util.Swap<T>(ref T, ref T)
;
- ✨ Added
static DelegateDisposable.Create<TState>(Func<TState>, Action<TState>)
;
- 🧩 Retargeted to:
net8.0
,netcoreapp3.0
,netcoreapp1.0
,netstandard2.1
,netstandard1.0
,net45
;
- ⬆️ Upgraded
JetBrains.Annotations
from 2023.2.0 to 2023.3.0; - 🧑💻 Added
[MustDisposeResource]
,[HandlesResourceDisposal]
code analysis attributes;
- ✨ Added
class DelegateDisposable : IDisposable
; - ✨ Added
DelegateDisposable(Action)
; - ✨ Added
DelegateDisposable.Dispose()
; - ✨ Added
DelegateDisposable.Dispose(bool)
; - ✨ Added
static DelegateDisposable.Create(Action, Action)
; - ✨ Added
static class ReaderWriterLockSlimExtensions
; - ✨ Added
ReaderWriterLockSlimExtensions.WithReaderLock(this ReaderWriterLockSlim)
; - ✨ Added
ReaderWriterLockSlimExtensions.WithUpgradeableReaderLock(this ReaderWriterLockSlim)
; - ✨ Added
ReaderWriterLockSlimExtensions.WithWriterLock(this ReaderWriterLockSlim)
;
- 🧩 Retargeted to:
net7.0
,netcoreapp3.0
,netcoreapp1.0
,netstandard2.1
,netstandard1.0
,net45
; - ✨ Added
Util.With<TResult>(IDisposable, Func<TResult>)
; - ✨ Added
Util.With<T>(T, Func<T, TResult>)
;
- ✨ Added
Util.Catch(Action)
; - ✨ Added
Util.Catch<TResult>(Func<TResult>, out TResult?)
; - ✨ Added
Util.Catch<TException>(Action)
; - ✨ Added
Util.Catch<TException, TResult>(Func<TResult>, out TResult?)
; - ✨ Added
Util.Is<T>(object?, out T?)
;
- 🧩 Targets:
net7.0
,netcoreapp3.1
,netstandard2.1
; - ✨ Added
static class Util
; - ✨ Added
Util.Fail<T>(out T?)
; - ✨ Added
Util.Fail<T1, T2>(out T1?, out T2?)
; - ✨ Added
Util.Fail<T1, T2, T3>(out T1?, out T2?, out T3?)
; - ✨ Added
Util.Fail<TReturn, T>(TReturn, out T?)
; - ✨ Added
Util.Fail<TReturn, T1, T2>(TReturn, out T1?, out T2?)
; - ✨ Added
Util.Fail<TReturn, T1, T2, T3>(TReturn, out T1?, out T2?, out T3?)
;