Я знаю, что вопрос не очень ясен, я даже не знаю, какие слова могут быть, чтобы описать то, что я пытаюсь сделать, но этот пример должен прояснить его.
Скажи это бит кода
public string Underscores;
public string Spaces
{
get => Underscores.Replace('_', ' ');
set => Underscores = value.Replace(' ', '_');
}
В этом примере значение Underscores хранится в памяти, а значение Spaces нет, а вместо этого генерируется на лету при обращении к. Если значение Spaces изменяется, значение Underscored изменяется соответственно. Я хочу распространить эту концепцию на структуры и классы:
struct StringStruct
{
public string Value { get; set; }
}
...
public string Underscores;
public StringStruct Spaces
{
get => new StringStruct { Value = Underscores.Replace('_', ' ') };
set => UnderScores = value.Value.Replace(' ', '_') };
}
Он отлично работает, если я перезаписываю Spaces новым StringStruct, но попытка изменить значение свойства Space Value приводит к компилятору ошибка, поскольку это не переменная. Тот же сценарий, но где StringStruct является классом, ошибки не возникает, но изменение будет проигнорировано, а подчеркивание останется прежним.
Примеры были составлены для объяснения, а не для того, что я на самом деле пытаюсь делать.