Как переопределить Метод базового класса и добавить параметр

Есть ли способ получить адрес электронной почты, введенный пользователем, перед отправкой его в Google OAuth 2.0 API?

Нет, это не так. Экран входа в систему, где они вводят это, находится в системе Google. Google не отправит вам это обратно, пока пользователь не подтвердит, что вы знаете эту информацию.

Единственный способ получить адрес электронной почты пользователя - это после того, как он вошел в систему. Если вы запросили объем электронной почты, конечная точка userinfo вернет вам эту информацию. Некоторые из API Google также имеют конечную точку, которая будет возвращать информацию об учетной записи текущего пользователя, и это часто включает их электронную почту.

6
задан Steve Rowe 11 March 2009 в 05:58
поделиться

4 ответа

При переопределении метода, за исключением переопределения слова вместо виртуального или абстрактного, оно должно иметь ту же самую подпись как исходный метод.

Что Вы сделали, вот, создают новый несвязанный метод. Не возможно представить параметр и все еще переопределить.

12
ответ дан 8 December 2019 в 17:27
поделиться

Да параметр является проблемой, сигнатура метода должна соответствовать точно (который включает возвращаемое значение и параметры).

0
ответ дан 8 December 2019 в 17:27
поделиться

Если некоторым производным классам нужны параметры, и некоторые не делают, у Вас должно быть две перегруженных версии метода. Затем каждый производный класс может переопределить тот, в котором он нуждается.

class Foo {    
    protected abstract XmlDocument CreateRequestXML(int somevalue);
    protected abstract XmlDocument CreateRequestXML();
};

class Bar : public Foo {    
    protected override XmlDocument CreateRequestXML(int somevalue) { ... };
    protected override XmlDocument CreateRequestXML()
        { CreateRequestXML(defaultInt); }
};

Это, конечно, представляет проблему пользователя, называющего неправильного. Если нет никакого приемлемого значения по умолчанию для дополнительного параметра, Вам, вероятно, придется выдать исключение в производном классе, если неверную версию называют.

2
ответ дан 8 December 2019 в 17:27
поделиться

Мне очень любопытно, что Вы пытаетесь выполнить с этим кодом.

Обычно Вы определяете абстрактную функцию, когда класс использования знает свою подпись. Класс использования имеет "контракт" с Вами базовый класс.

Когда Вы хотите произойти из базового класса и добавить дополнительные параметры, как класс использования знает, что обратиться к базовому классу так или иначе?

Это похоже на архитектурный дефект...., но возможно можно добавить некоторую дополнительную информацию к inital теме.

0
ответ дан 8 December 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: