示例#1
0
        public static void ExemplosObjetos()
        {
            // instancia uma lampada
            var a = new Lampada();

            // instancia um cigarro
            var c = new Cigarro();

            // inicia objetos da interface IAcendivel (polimorfismo com interfaces)
            IniciarObjeto(a);
            IniciarObjeto(c);

            // executa objetos da interface IImprimivel (polimorfismo com interfaces)
            ImprimirObjeto(a);
            ImprimirObjeto(c);

            var b = new LampadaLed();

            b.TrocarDiodo("ABC", 123);

            ImprimirPreco(a, 18, 48, "Femminino", false, DateTime.Now, b);

            Console.ReadKey();

            return;
        }
示例#2
0
        static void ImprimirPreco(Lampada lomp, params object[] inteiros)
        {
            ImprimirPreco(lomp);
            var s = new StringBuilder();

            for (int i = 0; i < inteiros.Length; i++)
            {
                s.AppendFormat("Indice: {0}, Tipo: {1}, Valor: {2}{3}.", i, inteiros[i].GetType().Name, inteiros[i], Environment.NewLine);
            }
            Console.WriteLine(s);
        }
示例#3
0
        public static void ExemploTiposPrimitivos()
        {
            // 'bool' vem da especificação do C# que é um atalho para 'Boolean' que é o tipo da plataforma
            bool g = true;
            // 'Boolean' é o tipo da plataforma
            Boolean g2 = false;

            // representação de um caracter simples usando o tipo char entre 'aspas simples'
            char a  = 'a';
            Char a2 = 'b';

            // representação de uma string usando o tipo String entre "aspas duplas"
            string s = "texto";
            String k = ".Net";

            // todo tipo numérico em C# tem uma especificação
            // Veja mais neste link
            // https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/value-types-table
            // Alguns valor numérico tem um sufixo após sua escrita de modo a identificar o tipo do valor (numero).
            // Um simples 10 é um inteiro (int), já um 10L é um inteiro longo (long) e assim por diante.
            // Veja os exemplos abaixo.

            // tipos numériso inteiros
            byte  inteiro8Bits         = 255; // System.Byte, sem sufixo, inteiro de 8 bits
            sbyte inteiro8BitsComSinal = -15; // System.SByte, sem sufixo, inteiro de 8 bits com sinal. O 's' bem se 'signed'.
            short inteiro16Bits        = 10;  // System.Int16, sem sufixo
            int   inteiro32Bits        = 10;  // System.Int32, sem sufixo
            long  inteiro64Bits        = 10l; // System.Int64, sufixo 'l' ou 'L'

            // tipos numéricos decimais
            float   pontoFlutuante = 123.2f; // System.Single, sufixo 'f' ou 'F'
            double  doub           = 2.4;    // System.Double, sem sufixo
            decimal dec            = 123m;   // System.Decimal, sufixo 'm'

            // tipos numéricos inteiros sem sinal (que aproveita o último bit e aumenta o valor, possibilitando apenas positivos)
            ushort unsignedShort   = 123;   // System.UInt16, sem sufixo
            uint   unsignedInteger = 0u;    // System.UInt32, sufixo 'u'
            ulong  unsignedLong    = 123ul; // System.UInt64, sufixo 'ul'

            // Utilize 'var' na declaração apenas quando for inicializar um valor.
            // A plataforma precisa conhecer o tipo da referência/valor que você está alocando em memória.
            var    inteiroComVar = 10;
            var    decimalComVar = 10m;
            var    doubleComVar  = 10.5;
            var    uintComVar    = 10u;
            var    lampada       = new Lampada();
            var    texto         = "String com Var";
            string texto2        = "Isso é a mesma coisa";


            Console.WriteLine("Hello world! This is a string.");
            Console.WriteLine('a');
        }
示例#4
0
        public static Lampada Criar(string tipo)
        {
            Lampada lamp = null;

            if (tipo == "led")
            {
                return(new LampadaLed());
            }
            else
            {
                lamp = new Lampada();
            }


            return(lamp);
        }
示例#5
0
        public static void ExemploEstadoDeObjetos()
        {
            Lampada lamp = new Lampada();
            var     led  = new LampadaLed();
            Lampada limp = new LampadaLed();

            var lemp = Lampada.Criar("leds");

            Console.WriteLine("Lampada: " + lamp.Preco);
            Console.WriteLine("Led: " + led.Preco);
            Console.WriteLine("Poli: " + limp.Preco);

            ImprimirPreco(lamp);
            ImprimirPreco(led);
            ImprimirPreco(limp);
            ImprimirPreco(lemp);

            var teste = led.EstaAceso();

            Console.WriteLine(lamp.EstaAceso());
            Console.WriteLine(led.EstaAceso());

            lamp.Acender();
            led.Acender();

            Console.WriteLine(lamp.EstaAceso());
            Console.WriteLine(led.EstaAceso());

            lamp.Apagar();
            led.Apagar();

            Console.WriteLine(lamp.EstaAceso());
            Console.WriteLine(led.EstaAceso());

            Console.Read();
            return;
        }
示例#6
0
 static void ImprimirPreco(Lampada lomp)
 {
     Console.WriteLine(lomp.Preco.ToString("C2"));
 }