Не удалось найти ответ на эту проблему, возможно, потому, что терминология является туманной.Почему не удается получить доступ к элементам переменной напрямую через оператор точки?
struct Container
{
public int a, b, c;
}
class Packer
{
public Container box { get; set; }
public void PackBox()
{
box.a = 100; // CS1612 "Cannot modify the return value of 'Packer.box" because it is not a variable"
Container _box = box;
_box.a = 100;
box = _box; // legal
}
}
Так у меня есть вопрос теории и практический вопрос:
- Почему не «» быть доступны непосредственно? Есть ли какой-то случай, когда это не просто сокращение для обходного пути _box?
- Как я могу избежать использования обходного пути kludgy _box? В моем конкретном случае проблема заключается в том, что я хочу использовать свойство класса с {get; защищенный набор; } доступ.
Спасибо, я никогда не думал о том, как изменчивость связана со свойствами. –