Exemple #1
0
        //Tipos de referencia
        //Conteito de imutabilidade de classe
        static void Main(string[] args)
        {
            //Inicializador da variavel na criação da classe
            var clientClass1 = new ClientClass()
            {
                Id   = 1,
                Nome = "Felipe"
            };

            var clientClass2 = new ClientClass(id: 1, nome: "Felipe");

            ////////// primeira

            if (clientClass1.Equals(clientClass2))
            {
                Console.WriteLine("Equals True");
            }
            else
            {
                Console.WriteLine("Equals False");
            }

            ////////// segunda
            if (clientClass1 == clientClass2)
            {
                Console.WriteLine("== True");
            }
            else
            {
                Console.WriteLine("== False");
            }

            //Erro
            //ClientClass clientClass99 = clientClass2 with { Nome = "Mario" };

            //////

            var clientRecord1 = new ClientRecord
            {
                Id   = 1,
                Nome = "Felipe"
            };

            ClientRecord clienteRecordWith = clientRecord1 with {
                Nome = "Calors"
            };

            clienteRecordWith.Nome = ""; // erro de compilacao

            //ClientRecord clientRecord2 = new(id: 1, nome: "Felipe1");


            if (clientRecord1.Equals(clientRecord2))
            {
                Console.WriteLine("True");
            }
            else
            {
                Console.WriteLine("False");
            }

            if (clientRecord1 == clientRecord2)
            {
                Console.WriteLine("True");
            }
            else
            {
                Console.WriteLine("False");
            }


            //ClientRecord clienteWith = clientRecord1 with { Nome = "Carlos" };

            //clienteWith.Nome = "";
        }
    }