Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Метод Add возвращает BinaryExpression, у которого свойство Method установлено для метода реализации. Свойство Type устанавливается в соответствии с типом узла. Если узел поднят, IsLifted и IsLiftedToNull свойства оба true
. В противном случае они false
. Свойство Conversion является null
.
Ниже приведены сведения о методе реализации, типе узла и о том, будет ли снят узел.
Реализация метода
Следующие правила определяют выбранный метод реализации для операции:
-
Type Если свойство любого
left
илиright
представляет определяемый пользователем тип, который перегружает оператор сложения, MethodInfo это метод реализации. - В противном случае , если
left
. Тип иright
. Тип — числовые типы, реализуетсяnull
метод.
Тип узла и снятый и не снятый
Если метод реализации не null
:
Если
left
. Тип иright
. Тип можно присвоить соответствующим типам аргументов реализующего метода, узел не поднимается. Тип узла — это возвращаемый тип метода реализации.Если выполнены следующие два условия, узел поднимается, а тип узла — это тип, допускающий значение NULL, соответствующий возвращаемому типу метода реализации:
-
left
. Тип иright
. Тип — это оба типа значений, для которых по крайней мере один имеет значение NULL, и соответствующие типы, не допускающие значения NULL, равны соответствующим типам аргументов метода реализации. - Возвращаемый тип метода реализации — это ненулевой тип значения.
-
Если метод реализации имеет значение null
:
- Если
left
.Тип иright
.Тип оба не допускают значение NULL, узел не поднимается. Тип узла — это тип результата предопределенного оператора добавления. - Если тип
left
и типright
оба могут быть null, узел поднимается в более высокий уровень. Тип узла — это тип, допускающий значение NULL, соответствующий типу результата предопределенного оператора добавления.