O uso de campos públicos somente leitura para estruturas imutáveis funciona?

Essa é uma maneira adequada de declarar estruturas imutáveis?

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

    // Constructor and stuff
}

Não consigo pensar no porquê disso haveria problemas, mas só queria pedir para ter certez

Neste exemplo, usei ints. E se eu usasse uma classe em vez disso, mas essa classe também é imutável? Isso deve funcionar bem também, certo?

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

    // Constructor and stuff
}

(Além disso: entendo que o uso de Properties é mais generalizável e permite alterações, mas essa estrutura destina-se literalmente a apenas armazenar dois valores. Estou apenas interessado na questão da imutabilidade aqui.)

questionAnswers(4)

yourAnswerToTheQuestion