Как я могу вынудить основного конструктора быть вызванным в C#?

Адрес электронной почты содержит символ точки (.). Этот символ считается разделителем полей, если он задан в виде необработанной строки, как в вашем примере. Firestore предполагает, что вы хотите установить в поле «name @ email» со ​​свойством «com» ​​значение указанного вами объекта. См. «Ограничения на пути полей» в документации .

Я не верю, что есть способ обойти это. Возможно, вы захотите перевести эту точку в какой-либо другой символ (возможно, такой, который не может быть в адресах электронной почты) перед доступом к базе данных. Все ваши запросы, использующие это поле, должны быть переведены аналогичным образом.

12
задан Tom Robinson 27 November 2008 в 15:43
поделиться

4 ответа

Основного конструктора будут всегда вызывать в какой-то момент. Если Вы звоните this(...) вместо base(...) затем это звонит в другого конструктора в тот же класс - который снова должен будет или вызвать еще одного одноуровневого конструктора или родительского конструктора. Рано или поздно Вы будете всегда добираться до конструктора который любой вызовы base(...) явно или неявно вызывает конструктора без параметров базового класса.

См. эту статью для больше о конструкторе, объединяющем в цепочку, включая точки выполнения различных битов (таких как переменные инициализаторы).

26
ответ дан 2 December 2019 в 03:43
поделиться

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

10
ответ дан 2 December 2019 в 03:43
поделиться

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

3
ответ дан 2 December 2019 в 03:43
поделиться

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

Править: перефразированный для ясности.

1
ответ дан 2 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

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