У меня есть эта функция в моем генераторе.
Private Sub AddBoundedValue(ByVal boundedValue As Object, ByVal type As CodeTypeDeclaration, ByVal numericType As Type, name As String)
If boundedValue IsNot Nothing Then
Dim constant As New CodeMemberField(numericType, name)
constant.Attributes = MemberAttributes.Const Or MemberAttributes.Public
constant.InitExpression = New CodePrimitiveExpression(Convert.ChangeType(boundedValue, numericType))
type.Members.Add(constant)
End If
End Sub
Если разработчик передает десятичную дробь для параметра "boundedValue" и десятичный тип для параметра "numericType", генерируется следующий код.
Public Const DollarAmountMaximumValue As Decimal = 100000
Несмотря на то, что тип данных, передаваемый в конструктор объекта CodePrimitiveExpression, является десятичным, сгенерированный код является целым числом, которое неявно преобразуется и сохраняется в десятичной переменной. Есть ли способ получить его сгенерировать с "D" после числа, как в:
Public Const DollarAmountMaximumValue As Decimal = 100000D
Спасибо.