ошибка с вычисляемым свойством

я слежу за тем, как сделать серию для выключателя света, и преобразовываю код при переходе с VB на C#

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

ошибка не может неявно преобразовать тип «десятичный?» на «десятичный». Существует явное преобразование (вам не хватает приведения?).

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

thanks,
Jason

Код VB

Private Sub LineItemTotal_Compute(ByRef result As Decimal)
      result = Me.Quantity * Me.Price
End Sub

Код С#

 private void LineItemTotal_Compute(ref decimal result)
  {
      result = this.Quantity * this.Price;
  }

Общий скриншот позиции


person Jason    schedule 16.12.2011    source источник


Ответы (1)


Количество ваших свойств – decimal? (можно обнулить).

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

Вместо этого вы можете написать ?? 0, чтобы объединиться с 0, если оно равно null.
Однако вам следует подумать о том, чтобы другие столбцы также не допускали значения NULL, чтобы вообще избежать этой проблемы.

person SLaks    schedule 16.12.2011
comment
это решило проблему, спасибо за предложение partial void LineItemTotal_Compute(ref decimal? result) { result = this.Quantity * this.Price; } - person Jason; 17.12.2011