4
respostas

Não consigo adicionar referência à DLL no projeto SistemaInterno

Ao salvar a DLL em outro diretório, e ao adicionar uma referência a ela no projeto SistemaInterno aparece uma mensagem de erro que diz que o objeto de referência é imutável.

4 respostas

Murilo, bom dia.

Você poderia mostrar com mais detalhes a mensagem? Qual a versão do VS que você está utilizando:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeExceutei os passos no VS 2022 e 2019 e funcionou, verifique a permissão da pasta onde você salvou a dll.

Murilo,

Objetos imutáveis funcionam desta forma:

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

Objetos imutáveis de forma mais fácil no C# 6 e VB 12

25 AGO 2014 - 2 MIN(S) DE LEITURA

Um problema comum na programação .NET com C# e VB é a quantidade de código repetitivo necessário para implementar objetos imutáveis. Diferentemente de uma classe normal, uma classe imutável necessita que cada propriedade possua um tipo definido de forma explícita e um construtor específico.

De forma a lidar com este problema, em uma especificação preliminar as linguagens C# e VB ganham o que está sendo chamado de "record class". Este novo recurso é essencialmente uma classe imutável definida unicamente pelo seu construtor. Veja um exemplo dessa especificação:

public record class Cartesian(double x: X, double y: Y);

Além do construtor, o compilador criará automaticamente:

  • Uma propriedade somente leitura para cada parâmetro;
  • Uma função Equals;
  • Implementações de GetHashCode e ToString que sobreescrevem as implementações padrão;
  • Um operador "is", conhecido como "Matches" no VB.
var x1 = new MyRecord(1, 2, 3);
var x2 = x1 with B: 16;
Console.WriteLine(x2) // prints something like "A = 1, B = 16, C = 3"

https://www.infoq.com/br/news/2014/08/Record-Class/

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

Boa a explicação do veterano de StackOverflow, o Maniero:

O que "imutável" realmente significa?

https://pt.stackoverflow.com/questions/15510/o-que-imut%C3%A1vel-realmente-significa

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

[]'s,

Fabio I.

Aqui acontece o mesmo erro, usando VS 2022 Community e com acesso de administrador. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Consegui resolver o problema criando uma classe dentro do program.cs e criando uma instância de ContaCorrente antes de tentar adicionar a referência. Por que deu certo? Não sei...

using ByteBank.Modelos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Teste
{
    class Program
    {
        static void Main(string[] args)
        {
            ContaCorrente conta = new ContaCorrente(123, 4567);
            Console.WriteLine(conta.Numero);

            Console.ReadLine();
        }
    }
}