Orkut Gmail Agenda Docs Web mais »
Grupos visitados recentemente | Ajuda | Acessar
Página inicial dos Grupos do Google
Informações do grupo
Membros: 220
Idioma: Português (Brasil)
Categorias do grupo:
Ciência e tecnologia
Computadores
Mais informações sobre o grupo »
Arquivos e páginas recentes
[C# Pegadinha] do dia 07/04/2008    
1 using System;
2
3 class Foo
4 {
5 public Foo()
6 {
7 Console.WriteLine(this.ToString());
8 }
9 }
10
11 class Bar1 : Foo
12 {
13 private int i;
14
15 public Bar1()
16 {
17 i = 123;
18 }
19
20 public override string ToString()
21 {
22 return i.ToString();
23 }
24 }
25
26 class Bar2 : Foo
27 {
28 private int i = 123;
29
30 public Bar2()
31 {
32 }
33
34 public override string ToString()
35 {
36 return i.ToString();
37 }
38 }
39
40 class Program
41 {
42 static void Main()
43 {
44 new Bar1();
45 new Bar2();
46 }
47 }
Qual a saída do programa acima?
a) 123 
0
 
b) 0
123
 
c) A compilação falha.
 
d) É lançado um erro em tempo de execução;
 
fonte: http://community.bartdesmet.net/blogs/bart/archive/2007/01/08/Answers-to-C_2300_-Quiz-_2D00_-Field-initialization.aspx  
 
Resposta: b)
A forma com que os construtores são chamados em C# é a mesma de JAVA. 
As variáveis globais são inicializadas antes da chamada do construtor.
A primeira chamada do construtor da classe invoca o construtor superior. Assim o construtor da classe Foo é invocado e chama o método toString do objeto em memória. 
Como em Bar1 a atribuição so ocorre após a chamada do construtor super a saída é 0.  

 

Versão: 
3 mensagens sobre esta página
8 abr 2008 por Breno
Resposta pegadinha C#

Clique em http://groups.google.com/group/ti-de-minas/web/c-pegadinha-do-dia-07-04-2008
ou copie e cole o URL na barra de endereço do navegador.
7 abr 2008 por Alon
Creio eu, ser LETRA (C)
7 abr 2008 por Breno
Pegadinha do dia C#

Clique em http://groups.google.com/group/ti-de-minas/web/c-pegadinha-do-dia-07-04-2008
ou copie e cole o URL na barra de endereço do navegador.
Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2009 Google