Причина, по которой вы не можете этого сделать, заключается в том, что то, что вы вкладываете в свойство, должно быть точно таким же, как то, что вы получаете от него. Если тип изменился, то это условие никогда не будет выполнено. Спецификация Microsoft гласит, что «Свойства подобны интеллектуальным полям». Представьте, что поле (переменная класса) изменилось между чтением и записью.
Ваша цель полностью действительна, но она не предназначена для использования свойств. (Под «намеченной целью» я подразумеваю намеченную цель Microsoft.) Ваш дизайн также открыл бы двери для потенциальных проблем, если бы была передана недопустимая или нулевая строка. Одна из целей разработки свойств заключается в том, что они имеют малый вес и не должны выбрасывать ошибки. Они могут , но не должны . Рекомендуемое решение - использовать шаблон TryParse
для вашей собственности.
EDIT
Извините, мой мозг отвлекся, ваша цель - сменить геттер, а не сеттер. Шаблон, который вы ищете, это просто свойство только для чтения (как указывал @msarchet), специфичное для вашего геттера. Например, AmountForPrint
или что-то. Вы также должны включить чтение / запись для вашего фактического значения.
Public ReadOnly Property AmountForPrint
Get
Return Me.Amount.ToString()
End Get
End Property
Public Property Amount As Integer
Get
End Get
Set(value As Integer)
End Set
End Property