Для этого вам нужно написать свойство setter. К сожалению, сеттеры не могут принимать дальнейшие аргументы в C #, поэтому вы не сможете написать этот код 1: 1 в C #. Самый близкий вы можете получить вложенный класс со свойством по умолчанию:
class YourClass {
public class Nested {
public Nested(YourClass outer) { m_RefToOuterWorld = outer; }
private readonly YourClass m_RefToOuterWorld;
public string this[int index] {
get { return m_RefToOuter.TestArray[index];
set { m_RefToOuter.TestArray[index] = value; }
}
}
private readonly Nested m_Nested;
private string[] TestArray = new string[10];
public YourClass() { m_Nested = new Nested(this); }
public Nested TestIt { get { return m_Nested; } }
}
Вы можете использовать это так:
var test = new YourClass();
test.TestIt[2] = "Hello world!";
Кстати, поскольку это так много усилий, вы, вероятно, не хотите этого делать. Кроме того, он не чувствует себя очень C # -y. Бесполезная косвенность через вложенный класс здесь не так часто встречается.