http://milaneze.com.br/post/2009/05/17/C-Sobrecarga-do-metodo-construtor.aspx
O código no exemplo abaixo desse post mostra uma maneira de fazer a sobrecarga do método construtor usando a palavra-chave this para fazer uma chamada a um construtor através de outro construtor.
Nesse caso, o código:
public mySampleClass() : this(10) { }
é equivalente a:
public mySampleClass()
{
mySampleClass(10);
}
Vamos ao exemplo desse post.
1: class Time
2: {3: private string h, m, s;
4: 5: public Time() : this("00", "00", "00") { }
6: 7: public Time(string hora) : this(hora, "00", "00") { }
8: 9: public Time(string hora, string minuto) : this(hora, minuto, "00") { }
10: 11: public Time(Time time) : this(time.h, time.m, time.s) { }
12: 13: public Time(string hora, string minuto, string segundo)
14: { 15: h = hora; 16: m = minuto; 17: s = segundo; 18: } 19: 20: public string ImprimirHora()
21: {22: return h + ":" + m + ":" + s;
23: } 24: }Usando esse código:
1: class Program
2: {3: static void Main(string[] args)
4: {5: Time hora1 = new Time();
6: Console.WriteLine("Hora 1: " + hora1.ImprimirHora());
7: 8: Time hora2 = new Time("02");
9: Console.WriteLine("Hora 2: " + hora2.ImprimirHora());
10: 11: Time hora3 = new Time("02", "10");
12: Console.WriteLine("Hora 3: " + hora3.ImprimirHora());
13: 14: Time hora4 = new Time("02", "10", "50");
15: Console.WriteLine("Hora 4: " + hora4.ImprimirHora());
16: 17: // o objeto hora4 dessa vez é passado como parâmetro
18: Time hora5 = new Time(hora4);
19: Console.WriteLine("Hora 5: " + hora5.ImprimirHora());
20: 21: Console.ReadLine(); 22: } 23: }
Nenhum comentário:
Postar um comentário