Diferença entre constante e somente leitura

É importante entender os conceitos de programação C # antes de prosseguir com a implementação do código. Antes de pularmos para as diferenças entre const e somente leitura, vamos primeiro entender as palavras-chave e como elas são usadas em um programa. Ambas são as palavras-chave mais comuns usadas na programação C # e basicamente com o mesmo propósito. No entanto, ambas as palavras-chave são muito diferentes uma da outra. Const é uma palavra reservada usada para representar valores constantes e especifica que um valor não pode ser modificado após o tempo de compilação, enquanto readonly é um modificador que pode ser usado em campos e o valor do qual pode ser alterado durante o tempo de execução. Vamos dar uma olhada em algumas das principais diferenças entre const e somente leitura.



O que é um Const?

Const se refere a uma variável constante e o valor da qual precisa ser atribuído apenas uma vez, durante a declaração. Quando a palavra-chave const é usada durante uma declaração, ela se torna uma constante, o que significa que o valor permanece constante e não pode ser alterado em todo o programa. É mais uma palavra reservada que especifica que um valor não deve ser modificado após o tempo de compilação. Uma const é implicitamente estática por padrão, então pode ser chamada com o nome da classe usando “Classname.VariableName”. Os valores constantes também são chamados de literais. Pode ser de qualquer tipo de dados básico, como const inteiro, const flutuante ou literal de string.



O que é ReadOnly?

A palavra-chave Readonly é um modificador que pode ser usado apenas em campos, mas não em variáveis ​​locais. Um campo somente leitura pode ser inicializado no momento da declaração ou dentro de um construtor na mesma classe, portanto, os valores podem ser diferentes para diferentes execuções do programa, dependendo do construtor usado. A palavra-chave readonly especifica que uma variável de instância de um objeto não é modificável e qualquer tentativa de modificá-la após a declaração resulta em erro de compilação. A variável não se torna não modificável até após a execução. Variáveis ​​são feitas somente leitura para parar de chamar o código de modificá-lo acidentalmente após sua construção.



Diferença entre constante e somente leitura

  1. Básico

A palavra-chave constante (const) nada mais é do que variáveis ​​imutáveis, cujo valor só pode ser inicializado no momento da compilação. Esses valores constantes também são chamados de literais. Ele simplesmente nos permite especificar se uma variável é modificável ou não. Em termos simples, as constantes são implicitamente estáticas e devem ser inicializadas antes de serem usadas no programa. A palavra-chave somente leitura, por outro lado, é um modificador que pode ser usado em campos e o valor do qual pode ser alterado durante o tempo de execução. Evita que campos sejam alterados e cujos valores possam ser definidos por meio de variáveis ​​de referência.

  1. Inicialização

Uma const é estática por padrão e os valores para os quais devem ser atribuídos no momento da declaração da variável, o que significa que os valores são atribuídos apenas no momento da compilação. Uma constante é declarada usando a palavra-chave “const”. A inicialização de um campo constante deve ser uma expressão constante e não pode ser modificada. Simplificando, uma const é uma constante de tempo de compilação. Um campo somente leitura, por outro lado, só pode ser inicializado no nível da classe, não dentro do método, e o campo não pode ser modificado após a inicialização. Em outras palavras, as variáveis ​​somente leitura podem ser inicializadas no momento da declaração ou dentro de um construtor.

  1. Alocação de memória

Um valor const é colocado diretamente no código, pois atua como a substituição em tempo de compilação. O compilador coloca o valor constante nos metadados do assembly que define a constante e incorpora o valor no próprio código IL após a inicialização, de forma que nenhuma memória seja necessária para constantes em tempo de execução para alocação. O valor somente leitura não é constante e é armazenado no heap do carregador, cuja memória não pode ser alocada até que seu tipo seja carregado. Os campos somente leitura são armazenados na memória dinâmica para que os valores só possam ser obtidos em tempo de execução.



  1. Controle de versão binária

Embora ambas as palavras-chave sejam usadas quase para o mesmo propósito, elas têm diferentes semânticas de versão binária. Quando uma expressão faz referência a uma constante, o compilador incorpora o valor em tempo de compilação. Portanto, se o valor for usado em uma montagem diferente, a montagem original precisa ser atualizada e o valor deve ser alterado. As mudanças na montagem não são refletidas até que seja recompilado. O valor não é obtido até o tempo de execução, quando uma expressão faz referência a um campo somente leitura. Se o valor for alterado em uma montagem diferente, as alterações serão refletidas na montagem assim que for carregada, sem a necessidade de recompilá-la.

Const vs. somente leitura: gráfico de comparação

Resumo de Const vs. somente leitura

Ambas as palavras-chave são usadas para a mesma coisa que é declarar um membro, de forma que os valores não possam ser alterados ao longo do programa. No entanto, a palavra-chave const é muito diferente da palavra-chave somente leitura. Const é uma variável constante cujo valor deve ser inicializado no momento da compilação, enquanto um campo somente leitura só pode ser inicializado no nível da classe, no momento da declaração ou dentro do construtor. Const é uma constante de tempo de compilação, enquanto os campos somente leitura são somente leitura. Variáveis ​​Constance podem ser acessadas usando “Classname.VariableName” enquanto variáveis ​​somente leitura podem ser acessadas usando “InstanceName.VariableName”. Além disso, variáveis ​​const podem ser declaradas em métodos, enquanto campos somente leitura não podem ser declarados em métodos.

Publicações Populares

Diferença entre sintonizador analógico e sintonizador digital

Sintonizadores analógicos vs sintonizadores digitais são partes de dispositivos, como TVs, que recebem e decodificam o sinal de uma fonte como sinais de RF ou da empresa de cabo

Diferença entre analogia e metáfora

Analogia vs Metáfora Na literatura, na maioria das vezes analogia e metáfora se confundem em seus usos. Provavelmente, isso se deve ao fato de ambos pertencerem a um

Diferença entre as testemunhas de Jeová e os cristãos

Testemunhas de Jeová contra cristãos O cristianismo, por definição, é um sistema de crença que reflete os ensinos de Jesus Cristo que qualificam tecnicamente

Diferença entre panela de barro e fogão lento

Crock Pot vs Slow Cooker Realmente depende de como você faz a pergunta quando está procurando a diferença entre uma Crock Pot e um fogão lento. Perguntou

Diferença entre Monarquia e Democracia

Monarquia x democracia A história do governo pode não ser exatamente conhecida, mas é seguro dizer que o governo é tão antigo quanto a própria sociedade humana. Em algum ponto em

Diferença entre contabilidade e escrituração

A contabilidade e a escrituração são ferramentas financeiras usadas para o registro de transações comerciais. Existem pequenas diferenças entre contabilidade e