Struct PersistentFunctionPointer
Represents a non-nullable persistent function pointer pointing to a target function
Implements
Inherited Members
Namespace: SemPtr
Assembly: SemPtr.dll
Syntax
public readonly struct PersistentFunctionPointer : ISpanFormattable, IFormattable, IUtf8SpanFormattable, IFunctionPointer<PersistentFunctionPointer>, IFunctionPointer, IPointer<PersistentFunctionPointer>, IPointer, IEquatable<PersistentFunctionPointer>, IEquatable<NullableFunctionPointer>, IEquatable<NullablePointerReadOnly>, IEquatable<NullablePointerUninitialized>, IEqualityOperators<PersistentFunctionPointer, PersistentFunctionPointer, bool>
Remarks
PersistentFunctionPointer has the following characteristics:
- Non-
nullableYou can invoke the function pointer's target function directly without checking fornull. - PersistentThe function pointer's target function outlives the pointer's initial scope. You can let the function pointer escape the current scope and store it for later invocation. No guarantees are made about how long the target function will remain valid.
- UntypedThe function pointer points to a target function of unknown signature. You must cast the function pointer to a specific type before you can invoke its target function.
You should never create instances of PersistentFunctionPointer using its parameterless constructors or default(PersistentFunctionPointer). Doing so will result in undefined behavior.
Always use the FromRaw(void*), FromIntPtr(nint), or FromUIntPtr(nuint) methods to create instances of PersistentFunctionPointer function pointers.
Constructors
| Name | Description |
|---|---|
| PersistentFunctionPointer() | Do not use. Do not create instances of non-nullable function pointers using parameterless constructors or default values. |
Properties
| Name | Description |
|---|---|
| AsIntPtr | Gets an nint that represents the same memory address as the current pointer. |
| AsUIntPtr | Gets an nuint that represents the same memory address as the current pointer. |
| HasTargetFunction | Gets a value indicating whether the current function pointer is non- |
| Raw | Gets a raw pointer pointing to the same target function as the current pointer. |
Methods
| Name | Description |
|---|---|
| Equals(NullableFunctionPointer) | Indicates whether the current object is equal to another object of the same type. |
| Equals(NullablePointerReadOnly) | Indicates whether the current object is equal to another object of the same type. |
| Equals(NullablePointerUninitialized) | Indicates whether the current object is equal to another object of the same type. |
| Equals(PersistentFunctionPointer) | Indicates whether the current object is equal to another object of the same type. |
| Equals(object?) | Indicates whether this instance and a specified object are equal. |
| FromDelegate<TDelegate>(TDelegate) | Creates a PersistentFunctionPointer<TDelegate> from a delegate of type |
| FromIntPtr(nint) | Creates a PersistentFunctionPointer from a memory address given as a nint. |
| FromRaw(void*) | Creates a PersistentFunctionPointer from a |
| FromUIntPtr(nuint) | Creates a PersistentFunctionPointer from a memory address given as a nint. |
| GetHashCode() | Returns the hash code for this instance. |
| ToString() | Formats the value of the current instance using the default format. |
| ToString(IFormatProvider?) | Formats the value of the current instance using the specified format. |
| ToString(string?) | Formats the value of the current instance using the specified format. |
| ToString(string?, IFormatProvider?) | Formats the value of the current instance using the specified format. |
| TryFormat(Span<byte>, out int, IFormatProvider?) | Tries to format the value of the current instance as UTF-8 into the provided span of bytes. |
| TryFormat(Span<byte>, out int, ReadOnlySpan<char>, IFormatProvider?) | Tries to format the value of the current instance as UTF-8 into the provided span of bytes. |
| TryFormat(Span<char>, out int, IFormatProvider?) | Tries to format the value of the current instance into the provided span of characters. |
| TryFormat(Span<char>, out int, ReadOnlySpan<char>, IFormatProvider?) | Tries to format the value of the current instance into the provided span of characters. |