Developer knowledge network ยท moderated exchange

UnreliableCode Community

Developer Research, Reverse Engineering & Coding Community

Knowledge indexLive
4Categories
919Threads
2.8KPosts
Tutorial

Using Ref Fields in Ref Structs (C# 11) for high-performance memory abstractions [StackOverflow Architecture Guide]

dotnet_runtime_architect
.NET Core Specialist
MEMBER
Rep: 103
Join Date: Apr 2018
Posts: 40
Thanks: 24
2 weeks ago ยท Aug 7, 2026 11:53 PM
#1

How C# 11 enabled ref fields inside ref struct types:

CSHARP
public ref struct CustomSpanReader<T>
{
    private ref T _current; // Ref field pointing directly into stack/heap memory
    private int _length;
    
    public CustomSpanReader(Span<T> span)
    {
        _current = ref MemoryMarshal.GetReference(span);
        _length = span.Length;
    }
}

Allows building custom enumerators, parsing streams, and windowed buffer scanners with direct pointer-like performance while maintaining 100% memory safety.

unsafe_memory_wizard
Unsafe & P/Invoke
MEMBER
Rep: 160
Join Date: Jul 2022
Posts: 10
Thanks: 38
2 weeks ago ยท Aug 8, 2026 4:12 AM
#2

ref fields made it possible to write custom Span-like types in standard C# without dropping into unsafe pointer code.

profiler_pat
Performance Hunter
MEMBER
Rep: 146
Join Date: Aug 2019
Posts: 33
Thanks: 31
2 weeks ago ยท Aug 8, 2026 2:49 PM
#3

A major feature for high-performance parser and network protocol library maintainers.