Pergunta

Se você tem um tipo imutável como esta:

struct Point3
{

}

e um interior membro como origem:

public static const Point3 Origin = new Point3 (0,0,0);

você deve usar:

new Point3 (0,0,0)

?

Parece-me que desde que o tipo não pode ser alterado, porque têm muitas origens que são essencialmente a mesma coisa? Como nós nunca mudam 0, certo?

Como alcançar a mesma coisa para tipos imutáveis?

Foi útil?

Solução

public static readonly Point3 Origin = new Point3(0,0,0);

Outras dicas

Como Andrew mencionado, você não pode usar const para isso, porque não é uma constante de tempo de compilação.

Note que se você são indo para usar um construtor repetidamente, você seria melhor fora (do ponto de vista do desempenho) chamando

new Point3()

de

new Point3(0, 0, 0)

O compilador sabe que a primeira versão é apenas vai em branco fora de memória, e não precisa chamar qualquer código.

No entanto, eu iria junto com o fornecimento de um membro do Origin e usando isso em todos os lugares em vez disso, sempre que possível:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top