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; }
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); }
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'); }
public static Lampada Criar(string tipo) { Lampada lamp = null; if (tipo == "led") { return(new LampadaLed()); } else { lamp = new Lampada(); } return(lamp); }
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; }
static void ImprimirPreco(Lampada lomp) { Console.WriteLine(lomp.Preco.ToString("C2")); }