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