Переопределение метода ToString для Double - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Итак! Имеется класс X в котором есть свойство G типа Double.
Высчитать арккосинус не беда, вопрос как в свойстве G переопределить метод ToString что бы возвращала не 0, а нужную мне строку. Переопределять X.ToString нежелательно. Или же все же проще сделать отдельный джетер?

Решение задачи: «Переопределение метода ToString для Double»

textual
Листинг программы
Public Class DegreeFormatter
    Implements IFormatProvider, ICustomFormatter
    Public Function Format(frmt As String, arg As Object, formatProvider As IFormatProvider) As String Implements ICustomFormatter.Format
        If (Not (TypeOf arg Is Double)) AndAlso
            (Not (TypeOf arg Is Single)) AndAlso
            (Not (TypeOf arg Is Decimal)) Then
            Return arg.ToString()
        End If
        Return ToDegrees(arg)
    End Function
 
    Private Function ToDegrees(val As Double) As String
        Dim isNeg = Math.Sign(val) < 0
        Dim angle = Math.Abs(val)
        Dim degrees = CInt(Math.Floor(angle))
        Dim minutes = (angle - degrees) * 60
        Return String.Format("{2}{0}°{1:00}'", degrees, minutes, If(isNeg, "-", ""))
    End Function
 
    Public Function GetFormat(formatType As Type) As Object Implements IFormatProvider.GetFormat
        Return If(formatType Is GetType(ICustomFormatter), Me, Nothing)
    End Function
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы