Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre a questão das referencias

Conforme listado na aula de C# PT2 - 07 Tipos de referência e tipos de valor: Ao declarar que uma referencia recebe outra como por exemplo "contaDaGabriela = contaDaGabrielaCosta;" caso eu alterar o valor de algum atributo como por exemplo o ".saldo" de qualquer uma das referencias no final o valor será apresentado como igual para as duas. Não sei se fui muito claro, mas posso entender que ao indicar que uma referencia recebe outra eu posso alterar o atributo de qualquer uma que o CSharp vai considerar a ultima alteração? Outra coisa é, o apontamento não é apenas de uma para outra e sim as duas apontam para cada uma delas como no exemplo abaixo? *"conta1 = conta2" = * Exemplo de logica de referencia

2 respostas
solução!

Felipe,

Todas as variáveis apontam para um endereço e dentro deste endereço a variável pode guardar dados de tipos primitivos ou complexos.

Pergunta:

  • Não sei se fui muito claro, mas posso entender que ao indicar que uma referencia recebe outra eu posso alterar o atributo de qualquer uma que o CSharp vai considerar a ultima alteração?

Resposta:

  • SIM, pois você está apontando para um endereço de memória e não para um OUTRO valor que, por exemplo, foi copiado.

Pergunta:

  • Outra coisa é, o apontamento não é apenas de uma para outra e sim as duas apontam para cada uma delas como no exemplo abaixo?

Resposta:

  • SIM, o ponteiro aponta (REFerencia) um endereço de memória, não é como o exemplo abaixo...

Por favor, leia os links abaixo, eles irão explicar melhor o que eu não consegui explicar:

==========================================================

Value Type and Reference Type

Tipo de valor e tipo de referência

Em C#, esses tipos de dados são categorizados com base em como armazenam seu valor na memória. C# inclui as seguintes categorias de tipos de dados:

  1. Tipo de valor
  2. Tipo de referência
  3. Tipo de ponteiro

Tipo de referência

Ao contrário dos tipos de valor, um tipo de referência não armazena seu valor diretamente. Em vez disso, ele armazena o endereço onde o valor está sendo armazenado. Em outras palavras, um tipo de referência contém um ponteiro para outro local de memória que contém os dados.

Alocação de Memória da Variável do Tipo de Valor

Alocação de Memória da Variável do Tipo de Valor

Alocação de Memória da Variável do Tipo de Referência

Alocação de Memória da Variável do Tipo de Referência

Tipo de referência nula

Tipo de referência nula

https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type

==========================================================

Pointer and Reference in C#

Ponteiro e referência em C#

Dániel Szabó

9 de janeiro de 2020

6 minutos de leitura

Para começar, vamos esclarecer alguns termos básicos. Em C# temos dois tipos de códigos, safe e unsafe . Chamamos um código seguro quando esse código é executado inteiramente sob a supervisão do CLR (Common Language Runtime). Códigos inseguros são códigos que usam recursos externos, como arquivos, arquivos de música ou vídeo ou fluxos de rede. Com código seguro o GC (Garbage Collector) libera recursos que não são mais necessários. Com código inseguro, precisamos chamar GC.Collect()ou implementar mecanismos para liberar os recursos não utilizados.

https://www.pluralsight.com/guides/charp-pointer-and-reference

==========================================================

VARIÁVEIS E TIPOS PRIMITIVOS

https://www.caelum.com.br/apostila-csharp-orientacao-objetos/variaveis-e-tipos-primitivos

==========================================================

C# - Não existem tipos primitivos definidos na linguagem C# (Você sabia ?)

https://www.macoratti.net/17/01/cshp_primit1.htm

==========================================================

Programando com C# - Variáveis

https://www.juliobattisti.com.br/tutoriais/herbertgois/programandocsharp005.asp

==========================================================

Tipos de Variáveis no C#

Veja nesta Quick tipos de variáveis no C#

https://www.devmedia.com.br/tipos-de-variaveis-no-csharp/16770

==========================================================

[]'s,

Fabio I.

Muito obrigado. Com as explicações e os links consegui entender bem como funciona a referencia e o funcionamento delas quando o apontamento é o mesmo.