Table of Contents

Class ValueRef<T>

Namespace
KZDev.PerfUtils
Assembly
KZDev.PerfUtils.dll

A reference type wrapper for value types. Using this wrapper can be especially useful when you need to manage atomic operations such as exchanging values in a thread-safe manner, or interlocked operations.

public class ValueRef<T> : IComparable<T>, IEquatable<T> where T : struct, IComparable<T>, IEquatable<T>

Type Parameters

T

The type of the value to wrap. This type must be a value type and implement IComparable<T> and IEquatable<T>.

Inheritance
ValueRef<T>
Implements

Constructors

ValueRef(T)

Initializes a new instance of the ValueRef<T> class

Properties

Value

The value being wrapped.

Methods

CompareTo(T)
Equals(object?)
Equals(T)
GetHashCode()
ToString()

Operators

operator ==(ValueRef<T>, ValueRef<T>)

Equality operator overload for ValueRef<T>.

operator ==(ValueRef<T>, T)

Equality operator overload for ValueRef<T> and T.

operator ==(T, ValueRef<T>)

Equality operator overload for T and ValueRef<T>.

operator >(ValueRef<T>, ValueRef<T>)

Greater than operator overload for ValueRef<T>.

operator >(ValueRef<T>, T)

Greater than operator overload for ValueRef<T> and T.

operator >(T, ValueRef<T>)

Greater than operator overload for T and ValueRef<T>.

operator >=(ValueRef<T>, ValueRef<T>)

Less than operator overload for ValueRef<T>.

operator >=(ValueRef<T>, T)

Greater than or equal to operator overload for ValueRef<T> and T.

operator >=(T, ValueRef<T>)

Greater than or equal to operator overload for T and ValueRef<T>.

implicit operator T(ValueRef<T>)

Implicit conversion operator to convert from ValueRef<T> to T.

implicit operator ValueRef<T>(in T)

Implicit conversion operator to convert from T to ValueRef<T>.

operator !=(ValueRef<T>, ValueRef<T>)

Inequality operator overload for ValueRef<T>.

operator !=(ValueRef<T>, T)

Inequality operator overload for ValueRef<T> and T.

operator !=(T, ValueRef<T>)

Inequality operator overload for T and ValueRef<T>.

operator <(ValueRef<T>, ValueRef<T>)

Less than or equal to operator overload for ValueRef<T>.

operator <(ValueRef<T>, T)

Less than operator overload for ValueRef<T> and T.

operator <(T, ValueRef<T>)

Less than operator overload for T and ValueRef<T>.

operator <=(ValueRef<T>, ValueRef<T>)

Less than or equal to operator overload for ValueRef<T>.

operator <=(ValueRef<T>, T)

Less than or equal to operator overload for ValueRef<T> and T.

operator <=(T, ValueRef<T>)

Less than or equal to operator overload for T and ValueRef<T>.