Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como a classe PosicaoGPScomLeitura atribui valores à latitude e longitude?

No VS 2013 ao criar a classe usando derivação:

        class PosicaoGPScomLeitura : ClassePosicaoGPS
        {
            private readonly DateTime dataLeitura;

            public PosicaoGPScomLeitura(double lat, double lng, DateTime dt)
            {
                this.dataLeitura = dt;
            }

            public override string ToString()
            {
                return "Classe: PosicaoGPScomLeitura\nLatitude: " + latitude + "\nLongitude: " + longitude + "\nHemisferio Norte? " + isHemisferioNorte() + "\nData da Leitura: " + dataLeitura;
            }
        }
        class ClassePosicaoGPS : IGPS //implementa a interface IGPS
        {
            public double latitude;
            public double longitude;

            //usando construtor
            public ClassePosicaoGPS(double lat, double lng)
            {
                latitude = lat;
                longitude = lng;
            }

            public ClassePosicaoGPS() { } // construtor sem parâmetros

            public override string ToString()
            {
                return "Classe: ClassePosicaoGPS\nLatitude: " + latitude + "\nLongitude: " + longitude + "\nHemisferio Norte? " + isHemisferioNorte();
            }

            public bool isHemisferioNorte() //implementação do método da interface IGPS. Obrigatório
            {
                return latitude > 0; //latitude maior q zero = norte
            }
        }

E instanciá-la assim:

PosicaoGPScomLeitura pos3 = new PosicaoGPScomLeitura(10.4, 20.2, DateTime.Now);

Retorna:

Classe: PosicaoGPScomLeitura
Latitude: 0
Longitude: 0
Hemisferio Norte? False
Data da Leitura: 11/01/2019 14:08:05

A latitude e longitude ficaram com valores zerados. No código-fonte, não há definição dos valores de latitude e longitude no construtor de PosicaoGPScomLeitura mas na video aula, a classe funcionou corretamente, atribuindo valores à latitude e longitute. Como o compilador fez isso? É alguma "feature" nova do VS2017?

1 resposta
solução!

Já encontrei o erro:

Como no Visual Studio 2013 que estou usando não tem o atalho Ctrl + . para gerar o construtor automaticamente, eu digitei na mão, mas esqueci de mencionar o contrutor da classe base. No vídeo o tutor não rolou a tela o suficiente para que eu pudesse ler o conteúdo integral.

Segue a correção do construtor:

public PosicaoGPScomLeitura(double lat, double lng, DateTime dt) : base(lat, lng)