Работает ли использование общедоступных полей только для чтения для неизменяемых структур?

Это правильный способ объявления неизменяемых структур?

public struct Pair
{
    public readonly int x;
    public readonly int y;

    // Constructor and stuff
}

Я не могу придумать, почему это может вызвать проблемы, но я просто хотел спросить чтобы убедиться.

В этом примере я использовал целые числа. Что, если бы я использовал вместо этого класс, но этот класс также неизменен, вот так? Это тоже должно работать нормально, верно?

public struct Pair
{
    public readonly (immutableClass) x;
    public readonly (immutableClass) y;

    // Constructor and stuff
}

(В сторону: я понимаю, что использование свойств более универсально и позволяет изменять, но эта структура предназначена буквально для хранения двух значений. Меня просто интересует вопрос неизменности здесь.)

58
задан Mike 19 May 2011 в 18:45
поделиться