public SampleClass {
private int[] m_sampleArray; // Assume has values
public Accessor this[int index] => new(this, index);
public ref struct Accessor {
private readonly SampleClass m_reference;
private readonly int m_index;
public Accessor(SampleClass reference, int index) {
m_reference = reference;
m_inedx = index;
}
public int MultByTwo {
get => (int)m_reference.m_sampleArray[m_index] * 2;
set {
m_reference.m_sampleArray[m_index] = (int)value * 2;
}
}
public int DivByTwo {
get => (int)m_reference.m_sampleArray[m_index] * 0.5f;
set {
m_reference.m_sampleArray[m_index] = (int)value * 0.5f;
}
}
}
}
public SampleClass {
private int[] m_sampleArray; // Assume has values
public Accessor this[int index] => new(this, index);
public ref struct Accessor {
private readonly SampleClass m_reference;
private readonly int m_index;
public Accessor(SampleClass reference, int index) {
m_reference = reference;
m_inedx = index;
}
public int MultByTwo {
get => (int)m_reference.m_sampleArray[m_index] * 2;
set {
m_reference.m_sampleArray[m_index] = (int)value * 2;
}
}
public int DivByTwo {
get => (int)m_reference.m_sampleArray[m_index] * 0.5f;
set {
m_reference.m_sampleArray[m_index] = (int)value * 0.5f;
}
}
}
}