using System; public struct ST_1 { public float A; public float B; public float C; public float D; } public readonly ref struct ST_2 // 要 C# 7.2 以上 { private readonly Span<float> _span; public ref float Value1() => ref _span[0]; public ref float A => ref _span[1]; public ref float B => ref _span[2]; public ref float C => ref _span[3]; public ref float D => ref _span[4]; public Span<float> ValueArray => _span[1..5]; // 要 C# 8.0 以上 public ST_2(Span<float> span) => _span = span; }
class Program { static void Main() { ST_2 x = new ST_2(stackalloc float[5] { 1.23f, 2.34f, 3.45f, 4.56f, 5.67f }); // 要 C# 7.3 以上